为导入的构造函数创建闭包 javascript

时间:2021-08-01 18:21:09

标签: javascript oop closures

情况如下:

我有两个对象,f1f2。这些对象来自分别存在于模块 './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 中可以实现这种类型的行为吗?

0 个答案:

没有答案