情况如下:
我有两个对象,f1
和 f2
。这些对象来自分别存在于模块 './test.js'
和 './test2.js'
中的构造函数。
我需要 f2
的方法才能访问 f1
的属性。
与其将 f1
传递给 f2 的构造函数,我宁愿同时拥有两个对象
有范围,所以他们可以看到对方。但是,我更希望它们不是都作为全局变量四处游荡。
问题是这些构造函数是在单独的模块中定义的。所以我试图通过在共享范围内“重新定义它们”来关闭对象构造函数:
import {f1Constructor} from './test.js'
import {f2Constructor} from './test2.js'
(function(){
var closed_f1C = f1Constructor
var closed_f2C = f2Constructor
var f1 = new closed_f1C()
var f2 = new closed_f2C()
.
.
.
})()
这样在 f2 构造函数的方法中我们就可以有:
f2Constructor.prototype = {
.
.
.
method1: function(){
var s = f1.x
.
.
.
}
.
.
.
}
javascript 中可以实现这种类型的行为吗?