var detail = function (id_type,id) { require(['views/detail/detail.js'], function(page) { var detailPage = page; showPage(detailPage.view,'detailPage'+id); detailPage.init(id_type,id); });}我这样做page会被函数影响到,我希望是page不被改变,仅改变函数的内部变量,所以请问该怎么做呢
1 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
var detailPage = page;
对象类型的复制是引用,两个对象指向同一个指针,改变其中一个,会影响另一个的值.
所以这里需要克隆,而不是赋值.
var page = {
a: 1
};
var page2 = page;
page2.a = 10;
console.log(page); // {a: 10}
var page3 = Object.assign({}, page);
page3.a = 100;
console.log(page); // {a: 10}
添加回答
举报
0/150
提交
取消