cwe*_*ton 5 javascript jquery closures object-initializers
假设我在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() { }
});
},
}
}
};
Run Code Online (Sandbox Code Playgroud)
然后我在JQuery click事件的上下文中调用它:
$(myElem).click(function() {
com.company.long.namespace.actions.add.invoke();
});
Run Code Online (Sandbox Code Playgroud)
由于'this'在jQuery事件回调中的作用方式,因此从此上下文调用时,this.defaults是未定义的.无论如何仍然在这个范围内使用'this',而不必定义完整的命名空间,或者不使用jQuery.proxy?
你不能打电话add,这不是一个功能.
如果调用该add.invoke函数,this.default则是您在add对象中定义的默认对象.你不需要做任何特别的事情.
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |