无奈的瓶子 2017-04-20 06:38 采纳率: 100%
浏览 1359
已采纳

js扩展原型方法里 this指向问题

JavaScript忍者秘籍这本书中 有一段Prototype库,函数bind代码的示例:

 Function.prototype.bind = function(){
            var fn = this, args = Array.prototype.slice.call(arguments),
                object = args.shift();
            return function(){
                  return fn.apply(object,args.concat(Array.prototype.slice.call(arguments)));
            };
        }; 
            var myObject = {a:"1"};
            function myFunction(){
                return this == myObject;
            };
            var aFunction = myFunction.bind(myObject);

            aFunction();

我用断点查看 函数bind里面的fn指向myFunction这个函数 这个我不太理解 我的理解是只要用Function.prototype 这个原型扩展的方法 此方法里面开始声明的变量var fn=this;中fn的指向就指向使用这个方法的函数 就像本例中的myFunction.bind(myObject);调用bin方法,fn指向myFunction这个函数 不知道这样理解对不对

  • 写回答

1条回答 默认 最新

  • followwwind 2017-04-20 09:57
    关注

    你的理解是对的,可以这么理解,js里面函数即对象

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大