Javascript- Apply & Call의 차이점

1440 단어
var sayHello = function() {
  console.log("hello, world");
};

이 방법을 사용하면 다음을 수행할 수 있습니다.
sayHello();
var say = function(greeting){
   console.log(greeting + ', ' + this.name);
};

콜을 사용하여 호출:
var person = {name: 'June'};
say.call(person, 'Hello');  //Hello, June
say.call(person, 'Goodbye'); //Goodbye, June

apply로 호출:
var person = {name: 'June'};
say.apply(person, ['Hello']);  //Hello, June
say.apply(person, ['Goodbye']); //Goodbye, June

apply와call은 매우 유사합니다. 이 방법들은 다른 방법에 의해 호출될 수 있습니다. 이 방법들은 하나의context에서 하나의 방법을 호출합니다. 첫 번째 매개 변수는context입니다.그것들의 가장 큰 차이점은 여러 개의 매개 변수를 가진 방법을 실행하는 데 있다.
var update = function(name, age, size){ 
    this.name = name; 
    this.age = age; 
    this.size = size;
};
update.call(person, 'Slarty',  200,  '1xM');
update.apply(person2, ['Slarty', 200, '1xM']); 

call 수신 매개 변수는 순서대로 열거해야 합니다.ECMAScript 6에서 매개변수 개수가 일정하지 않거나 여러 개인 경우 사용할 수 있습니다... 조작부호[주: IE, Safari<=8, Android Browser, iOS Safari 7 and node.js<=4]는 지원되지 않습니다.
fun.call(thisArg[, arg1[, arg2[, ...]]])

apply 두 번째 매개 변수는 반드시 개 그룹이어야 합니다. 그룹은 이 매개 변수로 구성되어 있습니다.
fun.apply(thisArg, [argsArray])

좋은 웹페이지 즐겨찾기