我是一名 C++/Java 开发人员,负责一个 javascript 项目,但我似乎无法解决这个问题。
我正在使用一个通过直接分配定义命名空间的 javascript 文件,如此处所述
所以这是我对一个过于简化的示例命名空间的尝试
// testns.js
var ns = { }
ns.val = -1;
ns.setVal = function(newVal) {
this.val = newVal;
}
这就是我想做的
//myScript.js
function testNamespaceInstances()
{
var nsInstance1 = ns;
nsInstance1.setVal(1);
var nsInstance2 = ns;
nsInstance2.setVal(2);
console.log("nsInstance1.val: " + nsInstance1.val);
console.log("nsInstance2.val: " + nsInstance2.val);
}
该函数将输出
nsInstance1.val: 2
nsInstance2.val: 2
如果不修改声明命名空间的 testns.js 文件,我能做些什么,以便函数输出
nsInstance1.val: 1
nsInstance2.val: 2
编辑:在示例代码中添加了更多细节。我还想指出我正在尝试简化我正在使用的更复杂的 javascript 文件