假设我在 javascript 中定义了以下内容:
com.company.long.namespace = {
actions: {
add: {
defaults: {
url: 'myurl/submit',
},
invoke: function () {
var submitUrl = this.defaults.url;
com.company.long.namespace.foo.util.server.submit({
url: submitUrl,
success: function() { }
});
},
}
}
};
然后我在 JQuery click 事件的上下文中调用它:
$(myElem).click(function() {
com.company.long.namespace.actions.add.invoke();
});
由于'this'在 jQuery 事件回调中的工作方式,当从这个上下文调用时this.defaults是未定义的。无论如何仍然可以在这个范围内使用“this”,而不必定义完整的命名空间,或者不使用jQuery.proxy?