필기:call()과 apply()의 역할
1634 단어 프런트엔드(HTML+CSS)
의미: apply: 한 대상의 한 방법을 호출하고 다른 대상으로 현재 대상을 교체한다. 예: B.apply(A,arguments).
call: 한 대상의 한 방법을 적용하고 다른 대상으로 현재 대상을 바꿉니다. 예를 들어 B.call(A,args1,args2).
공통점: 방법의 의미는 같다. 즉, 방법의 기능은 같다.
첫 번째 매개 변수의 작용은 같다.
차이점: 둘이 들어오는 목록의 형식이 다르다
call은 여러 개의 매개 변수를 전송할 수 있습니다.
apply는 두 개의 매개 변수만 전송할 수 있으며, 그룹 형식으로만 전송할 수 있습니다.
//call
function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);
//apply
function.apply(thisObj[, argArray]);
예://
function add(a, b){
alert(a + b);
}
function index(a, b){
// call print,
print.call(this, a, b);
// apply print, ,
// JavaScript arguments
print.apply(this, arguments);
//
print.apply(this, [a, b]);
}
존재의 의미(call의 경우):
기본 용도:
//
function add(a,b){
alert(a+b);
}
function sub(a,b){
alert(a-b);
}
add.call(sub,3,1);
//add sub,add.call(sub,3,1) == add(3,1);
상속:
//
function Animal(name){
this.name = name;
this.showName = function(){
alert(this.naem);
}
}
function Cat(name){
Animal.call(this.name);
}
var cat = new Cat("Black Cat");
cat.showName();
//cat Animal
다중 상속:
//
function class1(){
this.showSub = function(a,b){
alert(a-b);
}
}
function class2(){
this.showAdd = function(a,b){
alert(a+b);
}
}
function class12(){
class1.call(this);
class2.call(this);
}