14_함수 ([5]call 및 apply 방법)
//call apply :
function sum(x, y){
return x + y;
}
function call1(num1, num2){
return sum.call(this, num1, num2);
}
function apply1(num1, num2){
return sum.apply(this, [num1, num2]);
}
console.info(call1(10, 20));
console.info(apply1(20, 30));
call, apply의 용도 중 하나는 매개 변수를 전달하는 것이지만, 사실상 그들의 진정한 강력한 방식은 함수를 확장하여 운행하는 작용역을 확장할 수 있다.call (), aplly () 를 사용하여 작용역을 확장하는 가장 큰 장점은 대상이 방법과 어떠한 결합도 필요로 하지 않는다는 것이다
//
var color = "red"; // window.color
var obj = {color : "blue"};
var obj2 = {color : "yellow"};
function showColor(){
console.info(this.color);
}
showColor.call(this); //red showColor.call(window);
showColor.call(obj); //blue
showColor.call(obj2); //yellow
call 방법 간단한 실현
//call ,apply call
// function
function fn(a, b){
return a + b;
}
//
function Obj(x, y){
this.x = x;
this.y = y;
}
var o = new Obj(10, 20);
console.info(o); // Obj { x=10, y=20}
o.fn = fn;
console.info(o);
var result = o.fn(o.x, o.y); // Obj { x=10, y=20, fn=fn()}
delete o.fn;
console.info(o); // Obj { x=10, y=20}
console.info(result); //30
console.info(fn.call(o, o.x, o.y)); //30
팁:
그룹의 최대 또는 최소 값을 찾으려면 아래와 같이 apply () 방법을 사용할 수 있습니다.
var values = [1, 2, 3, 4, 5, 6, 7, 8];
var max = Math.max.apply(Math, values);
이 기교의 관건은 Math 대상을 apply () 의 첫 번째 매개 변수로 삼아this 값을 정확하게 설정하는 것이다.그리고 모든 그룹을 두 번째 매개 변수로 사용할 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JScall () 및 apply () 방법에 대한 인스턴스 요약 사용최근에 JacvaScript에서의call()방법과apply()방법을 만났습니다. 그리고 어떤 때는 이 두 방법이 정말 중요합니다. 그러면 이 두 방법의 사용과 차이를 정리하겠습니다. 모든 함수는 두 가지 비계승적인 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.