熟悉 Function.prototype.bind()

迎接前端爱好者到场QQ群:112916679 答疑解惑,且可猎取更多前端材料!

bind()要领建立一个新的函数, 当被挪用时,将其this关键字设置为供应的值,在挪用新函数时,在任何供应之前供应一个给定的参数序列。

例子:

var obj = {
        x: 20,
        getX: function(){
            return this.x;
        }
    };
        
    var foo = obj.getX;
    console.log(foo()); // undefined
        
    var bindFoo = foo.bind(obj);
    console.log(bindFoo()); // 20

语法

fun.bind(thisArg[, arg1[, arg2[, ...]]])

参数

thisArg
当绑定函数被挪用时,该参数会作为原函数运行时的 this 指向。当运用new 操作符挪用绑定函数时,该参数无效。

arg1, arg2, …
当绑定函数被挪用时,这些参数将置于实参之前传递给被绑定的要领。

返回值

返回由指定的this值和初始化参数革新的原函数拷贝

形貌

bind() 函数会建立一个新函数(称为绑定函数),新函数与被调函数(绑定函数的目的函数)具有雷同的函数体(在 ECMAScript 5 范例中内置的call属性)。当新函数被挪用时 this 值绑定到 bind() 的第一个参数,该参数不能被重写。绑定函数被挪用时,bind() 也接收预设的参数供应给原函数。一个绑定函数也能运用new操作符建立对象:这类行动就像把原函数当做组织器。供应的 this 值被疏忽,同时挪用时的参数被供应给模仿函数。

    原文作者:蒋敬敏
    原文地址: https://segmentfault.com/a/1190000013731220
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞