javascript - 如何防止变量在javascript中改变

标签 javascript jquery

我想保留变量的原始信息,以便重新设置代码会容易得多。

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/

相关文章:

jquery - 如何仅将 jquery 应用于移动设备?

javascript - 当用户进入该 div 时如何执行按键事件?

javascript - 将变量从javascript传递到django View

javascript - 尝试覆盖全局变量时出现 jQuery.post() 范围问题

jquery - 与将位置保留在布局中的 .hide() 等效的是什么?

javascript - 从 jQuery 编辑器向 PHP 获取值(value)

javascript - 轨迹球控件和图形用户界面不能一起工作

javascript - 如何使用 jQuery 基于选择器模式_pairs_应用多个语句?

javascript - 日期选择器范围工作错误

jquery - 如何用背景颜色覆盖相对定位的div