javascript - javascript可以从构造函数内部传递自身吗

标签 javascript class object

我该怎么做:

var abc = (function(){ 
  ..  
})();

register(abc); // outside the protected class

为此:(无需在类外调用 register):

function register(object){ stores the object }

var abc = (function(){
     ..       

     register(this); // inside the protected class
})();

一些背景。

主类有一个插件对象数组,“注册”函数放置插件。 abc 就是这样一个插件。模块模式闭包之后的插件。我想将插件实例放入列表中,并且插件尽可能独立。我想删除插件之外的其他功能。

我考虑过: MasterClass.plugins.abc = (函数..) 但我认为这会在加载任何插件之前创建对 MasterClass.plugins 的依赖。

最佳答案

您可以使用 Function.prototype.bind()(修改 this 值)和一个 var 内部,如下所示:

(function(){
var fun = function(){ alert( this.toString() )}
fun.bind(fun)();
})()

在你的情况下:

(function(){
var fun = function(){ alert( this.toString() )}
register(fun);
})()

关于javascript - javascript可以从构造函数内部传递自身吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24078948/

相关文章:

javascript - 失去焦点时关闭弹出窗口

python - 属性是变量吗?

Javascript ES6 检索类的成员

java - 为什么 Java 代码在移入函数时不起作用?

javascript - 反转 map 对象

javascript - 保持背景图像的纵横比

javascript - JS IE8,7,9 错误 'attr(..)' is null or not an object

java - 修改传递给类的 Java 参数

javascript - 如何使用 Cheerio 和 XML 数据 (JavaScript) 获取标签名称?

java - 无法使用 Class.forName() 实例化类