본문 바로가기
학습 log (이론)/javascript

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

by abbear25 2016. 10. 17.

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}

반응형