我在javascript代码中使用模块模式,最初我必须使私有属性等于另一个,但看起来它只是一个符号链接,就像在示例中一样。 我需要两个独立的私有属性,但有时会同步它们。
感谢您的帮助。
马克西姆。
var module = (function () {
var data1 = {
pro1 : "aaa",
pro2 : "bbb"
};
var data2 = {};
function init() {
data2 = data1;
}
function logg() {
console.log(data1);
console.log(data2);
}
function test() {
data2.pro1 = 'haha';
}
return {
init : init,
logg : logg,
test : test
}
}());
module.init();
module.logg();
// data1 = { pro1 : "aaa", pro2 : "bbb" }
// data2 = { pro1 : "aaa", pro2 : "bbb" }
module.test();
module.logg();
// data1 = { pro1 : "haha", pro2 : "bbb" }
// data2 = { pro1 : "haha", pro2 : "bbb" }
答案 0 :(得分:0)
如果你的简单对象示例类似于你将要使用的结构,也就是说没有来自你的对象的原型继承,你可以遍历你的对象并将值从旧到新分配。否则,您的简单作业将通过引用传递。
即:
for(var i in data1){
data2[i] = data1[i];
}