call & apply

在特定的作用域中调用函数
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容