我想保留变量的原始信息,以便重新设置代码会容易得多。
var $dataSets = [1,2,3,4];
var $oldData = $dataSets;
$('.button').click(function(){
$(this).toggleClass('selected');
if($(this).hasClass('selected')) {
$dataSets.splice(1,1);
console.log($dataSets);
} else {
console.log($oldData);
}
});
我的代码存在的问题是,当我修改 $dataSets
时,它也会更改 $oldData
。如何防止 $oldData
发生变化?
最佳答案
改为
var $dataSets = [1,2,3,4];
var $oldData = $dataSets.slice();
JavaScript 不会将 $dataSets
的值传递给 $oldData
,而是传递对 $dataSets
本身引用的事物的引用.
此变通方法有效,因为 JavaScript 的数组($dataSets
是什么)有一个名为 slice
的方法,当不带参数调用时,返回数组的副本.
关于javascript - 如何防止变量在javascript中改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19573004/