define(function () { var fn; function setHeight(obj) { fn = $(obj).height; // jQuery 的 height() 方法 fn(); // 如果这么调用的话 this 就指向了全局 } function reduction() { fn(); // 如果这么调用的话 this 就指向了全局 } return { init: setHeight };});存成变量 调用时是在全局环境 this 默认指向 window 然而这并不是我想要的~js 的 this 问题没少被吐槽 这是语言的设计问题吗 在别的语言上有这样的特征吗?~我怎么做到把 $(obj) 这个对象上的 height 方法存起来 这样的话如果后续要把 height 方法修改成 outerHeight 直接改一处就可以了 而且也不用每次去查对象原型链上的 height 了 对于这种重复用在好多地方的东西大家都是怎么处理的~
1 回答

慕莱坞森
TA贡献1810条经验 获得超4个赞
可以这样
fn = function(){ return $(obj).height(); }
或者这样fn = $(obj).height.bind($(obj));
添加回答
举报
0/150
提交
取消