A-A+

手写bind()函数

2018年11月09日 JavaScript 暂无评论 阅读 20 次

手写bind()函数

  var name = 'windowName'
    var a={
        name:'Cherry',
        fn:function (newName) {
            console.log(this.name+' and new :'+newName)
        }
    }

    var b=a.fn;
    b("33333")
    b.apply(a,['3333'])


    if(Function.prototype.binder === undefined){
        console.log('您的浏览器不支持bind')

        Function.prototype.binder = function(obj){
            //todo arg1 没用吧
            var arg1 = [].slice.call(arguments,1);
            var fun =this;
            return function(){
                fun.apply(obj,arg1.concat([].slice.call(arguments,1)));
            }
        }
    }else{
        console.log('您 的浏览器支持bind')
    }


    var obj = {
        name:'tom',
    }

   function fn(){
        console.log(this.name)
    }
    fn.binder(obj)()

标签:

给我留言

Copyright © web前端技术开发个人博客 保留所有权利.   Theme  Ality

用户登录