运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

在 JavaScript 中如何自定义 bind 函数

运维开发网 https://www.qedev.com 2021-04-14 10:10 出处:51CTO 作者:mb607558ea4fef1
Function.prototype.customBind = function (context) { var fn = this,
Function.prototype.customBind = function (context) {
    var fn = this,
        args = Array.prototype.slice.call(arguments, 1);
    return function() {
        // 将新函数执行时的参数 arguments 全部数组化,然后与绑定时传参 arg 合并
        var newArgs = Array.prototype.slice.call(arguments);
        return fn.apply(context, args.concat(newArgs));
    }
};
var testFn = function(obj, arg) {
    console.log('作用域对象属性值:' + this.value);
    console.log('绑定函数时参数对象属性值:' + obj.value);
    console.log('调用新函数参数值:' + arg);
}
var testObj = {
    value: 1
};
var newFn = testFn.customBind(testObj, {value: 2});
newFn('hello world’);

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消