美文网首页
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