我怎么能这样做:
var abc = (function(){
..
})();
register(abc); // outside the protected class
对此:(不在课堂外调用注册表):
function register(object){ stores the object }
var abc = (function(){
..
register(this); // inside the protected class
})();
一些背景知识。
master-class有一个插件的对象数组,'register'函数放置插件。 abc会是这样一个插件。模块patern关闭后的插件。我想将插件实例放入列表中,插件尽可能自包含。插件外的其他功能我想删除。
我考虑过: MasterClass.plugins.abc =(功能..) 但我认为这会在加载任何插件之前创建一个依赖MasterClass.plugins的实例化。
答案 0 :(得分:0)
你可以使用Function.prototype.bind()(修改 this 值)和var里面,如下所示:
(function(){
var fun = function(){ alert( this.toString() )}
fun.bind(fun)();
})()
在你的情况下:
(function(){
var fun = function(){ alert( this.toString() )}
register(fun);
})()