call & apply

2017-10-12  本文已影响0人  Love小六六

在特定的作用域中调用函数
apply接收两个参数,一个为在其中运行的函数的作用域,另一个为参数数组
call第一个参数也是运行函数的作用域,但其余参数都必须逐个列举出来

sum.apply(this, [num1, num2]);
sum.call(this, num1, num2);

主要用于扩充函数的作用域

window.color = "red";
var o = { color: "blue" };
function sayColor(){
    alert(this.color);
}
sayColor();//red
sayColor.call(this);//red
sayColor.call(window);//red
sayColor.call(o);//blue
window.color = "orange";
var o = { color: "blue",
        sayColor:function(){
         alert(this.color);
}};
o.sayColor() // blue
o.sayColor.call(this) //orange
o.sayColor.call(window) //orange
o.sayColor.call(o) // blue
上一篇 下一篇

猜你喜欢

热点阅读