我一直试图围绕
javascript函数和范围如何工作,这对我来说没有意义.有人可以解释为什么以下代码输出:’动物说喵’而不是’小猫说喵’?
(function($,exports){ var animal = function(){}; exports.Animal = animal; })(jQuery,window); (function($,Animal){ var kitty = new Animal; kitty.sayHi = function(){ console.log(this); console.log('says meow'); } $($.proxy(function(){ $('#js_test').click($.proxy(kitty.sayHi,kitty)); },kitty)) })(jQuery,Animal);
UPDATE
@FunkyFresh在注释中指出console.log在传递一个对象时调用toString,默认情况下返回对象的类型(animal).当我用上面的代码更新时
animal.prototype.name = 'Mammal';
在顶部的代码块中,和
kitty.name = 'Zax';
解决方法
原文地址:https://www.jb51.cc/jquery/156840.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。