javascript - 在原生js中关于bind实现的一些疑惑
怪我咯
怪我咯 2017-04-10 15:08:34
[JavaScript讨论组]

这里是原生js中bind的实现,我一些地方不是很理解,

if(!Function.prototype.bind){
    Function.prototype.bind=function(obj){
        var slice=[].slice,
        args=slice.call.(arguments,1),
        self=this,
        nop=function(){},
        bound=function(){
        return self.apply(this, instanceof nop ? this:{obj||{}}),
            args.concat(slice.call(arguments)))
        };
        nop.prototype=self.prototype;
        bound.prototype=new nop();
        return bound;

    };
}

关于它的上下文是怎么变化的,我能够理解
但是我不太清楚,第一:

nop.prototype=self.prototype;
        bound.prototype=new nop();

这里是在做什么?
第二是,这里的参数,关于参数数组的做法。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(0)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号