美文网首页
JS中的apply、call、bind方法

JS中的apply、call、bind方法

作者: SmileMylife | 来源:发表于2019-08-06 21:15 被阅读0次

1.call()方法

window.color = "red";
var o = {"color": "blue"};
function getColor() {
    console.log(this.color);
}
getColor.call(this, null);
getColor.call(o, null);
此处通过call()方法改变了this指向,即调用该函数的对象,call方法调用时需要逐一列举出参数列表。

2.apply()方法

window.color = "red";
var o = {"color": "blue"};
function getColor() {
    console.log(this.color);
}
getColor.apply(this, null);
getColor.apply(o, null);
此处apply和call方法的作用类似,唯一不同的是在使用apply方法时可传入参数列表arguments或者数组对象。

3.bind()方法

window.color = "red";
var o = {"color": "blue"};
function getColor() {
    console.log(this.color);
}
getColor();         //red
var getColor1 = getColor.bind(o);
getColor1();
使用bind方法后会返回一个函数实例,返回的这个函数实例的执行环境与o绑定,即使是在全局环境中执行打印的结果也是blue。

相关文章

网友评论

      本文标题:JS中的apply、call、bind方法

      本文链接:https://www.haomeiwen.com/subject/gfdgdctx.html