티스토리 뷰
var kim = {name:'kim', first:10, second:20}
var lee = {name:'lee', first:10, second:10}
function sum(){
return this.first+this.second
}
//sum.call(); //이렇게만 작성하면 sum이라는 함수를 실행시켜주는것이랑 같음.( sum(); )
console.log(sum.call(kim)); //call(kim)이라고 작성해줌에 따라서 this는 kim이 됨.
// 만약 parameter가 있다면?
function sump(prefix){
return prefix+(this.first+this.second)
}
console.log(sump.call(kim, "합계 = > ")) //결과는 합계 = > 30 으로 출력된다. 첫번째자리에는 this를 무엇으로 할것인가가 오고, 두번째 자리부터는 인자값이 들어가게 됨.
kim 이라는 객체와 sum이라는 함수는 각각 다른놈인데 sum에 this가 있다.
이 this를 kim 혹은 lee 로 바궈주려면 call을 써서 파라미터 자리에 객체 이름을 적어주면 this가 그놈이 된다.
신기허네
'Study > script.js' 카테고리의 다른 글
[자바스크립트]드래그해서 움직이는 박스 만들기 (0) | 2019.12.07 |
---|---|
[자바스크립트]돔 이벤트에 콜백함수를 지정할 경우 매개변수는? (0) | 2019.12.06 |
[자바스크립트 객체지향]__proto__, Object.create() (0) | 2019.11.22 |
[자바스크립트 es6]function 화살표? => !!!! (0) | 2019.11.20 |
[자바스크립트 es6] for of 문 (0) | 2019.11.19 |
댓글