call invoke execute run => function()
function f(x) {
console.log(`f 내부: x=${x}`);
x=5;
console.log(`f 내부: x=${x} 할당 후`);
}
let x = 3;
console.log(`f 호출하기 전: x=${x}`);
f(x);
console.log(`f 호출한 후: x=${x}`);
const o = {
name : `Wallance`,
bark : function (){return `멍멍`}
}
일반적으로 this는 객체의 프로퍼티인 함수에서 의미한다.this는 호출한 메서드를 소유하는 객체
const f1 = function () {return "hello!";}
const f1 = () => "hello";
const f2 = function (name) {`hello ${name}`}
const f2 = (name) => `hello ${name}`;
const f3 = function (a,b) { return a+b;}
const f3 = (a,b) => a + b;
call는 this 과 apply는 ...,Array
function update(birth, occup) {
this.birth = birth;
this.occup = occup;
}
const bruce = {name:`bruce`};
const madeli = {name:`madeli`};
update.call(bruce,1993,`singer`);
// bruce
// {name: 'bruce', birth: 1993, occup: 'singer'}
update.apply(madeli,[1955,`actor`]);
// madeli
// {name: 'madeli', birth: 1995, occup: 'actor'}
const arr = [5,1,25,9,-19];
Math.min.apply(null,arr);
Math.min.apply(...arr);