javascript可以从构造函数内部传递自己

时间:2014-06-06 09:51:22

标签: javascript class object

我怎么能这样做:

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的实例化。

1 个答案:

答案 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);
})()