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 了 对于这种重复用在好多地方的东西大家都是怎么处理的~
可以这样
或者这样
fn = $(obj).height.bind($(obj));