自定义实现js的bind()方法

来源:互联网 发布:spaceman软件 编辑:程序博客网 时间:2024/06/17 00:52

bind():将函数绑定到另一个对象上,返回一个函数。调用返回的函数,会将原函数当做绑定的对象的方法来使用。

语法:bind(对象,实参)
传入的实参也会绑定至this。

自定义实现:

if(!Function.prototype.bind){    Function.prototype.bind = function(o/,*args*/){        var self = this, boundArgs = arguments;        return function(){            var args = [],i;            for(i = 1; i < boundArgs.length; i++){                args.push(boundArgs[i]);            }            for(i = 0; i < arguments.length; i++){                args.push(arguments[i]);            }            return self.apply(o, args);        };    };}
例:function f(){    for(var i = 0; i < arguments.length; i++){        console.log(argumetns[i]);    }}var o = {};var s = f.bind(o, 3, 4);s(1,2);//输出:1 2 3 4