수업소개
자바스크립트는에서 함수는 혼자 있으면 개인이고, new가 앞에 있으면 객체를 만드는 신이고, call을 뒤에 붙이면 용병이고, bind를 붙이면 분신술을 부리는 놀라운 존재입니다. 자바스크립트의 함수의 놀라움을 느껴보세요.
강의1
수업의 오리엔테이션입니다.
강의2
call을 통해서 실행할 때마다 this의 값을 변경하는 방법을 살펴보세요.
코드
object_function.js (변경사항)
var kim = {name:'kim', first:10, second:20} var lee = {name:'lee', first:10, second:10} function sum(prefix){ return prefix+(this.first+this.second); } // sum(); console.log("sum.call(kim)", sum.call(kim, '=> ')); //apply console.log("lee.call(kim)", sum.call(lee, ': '));
강의3
bind를 통해서 독립적이면서도 특정 객체의 메소드 역할을 할 수 있는 함수를 만들어보세요.
코드
object_function.js (변경사항)
var kim = {name:'kim', first:10, second:20} var lee = {name:'lee', first:10, second:10} function sum(prefix){ return prefix+(this.first+this.second); } // sum(); console.log("sum.call(kim)", sum.call(kim, '=> ')); //apply console.log("lee.call(kim)", sum.call(lee, ': ')); var kimSum = sum.bind(kim, '-> '); console.log('kimSum()', kimSum());