학습 log (이론)/javascript

'call(), apply()' 함수와 프로토타입 체이닝

abbear25 2016. 10. 17. 14:50

this를 특정 객체에 명시적으로 바인딩 시키는 방법


apply()

function.apply(thisArg, argArray)

thisArg, 메서드를 호출한 함수 내부에서 사용한 this에 바인딩할 객체

argArray, 함수를 호출할 때 넘길 인자들의 배열

function Person(name, age){

this.name = name;

this.age = age;

return 100;

}

var illua = {};

Person.apply(illua, ['illua', 50]);


call()

apply()와 동일하지만 넘겨주는 인자를 각 하나의 인자로 넘기는 차이만 있음

Person.call(illua, 'illua', 50);


함수리턴

1.일반 함수나 메서드는 리턴값을 지정하지 않을 경우 undefined값 리턴

2.생성자 함수에서 리턴값을 지정하지 않을 경우 생성된 객체 리턴

*리턴으로 지정한 값이 객체가 아닌 불린, 숫자, 문자열의 경우

리턴값을 무시하고 this로 바인딩된 객체 리턴

var illua = new Person('illua2', 40);

console.log(illua); //결과 : Person { name: 'illua', age: 40}

반응형