javascript - 分配变量值: Reference it instead of copying it

标签 javascript variables

function Picker() {
    this.status = [0, 0, 0];
    this.progress = Picker.status[0];
}

var picker = new Picker();

picker.progress = 2;

现在,如果我检查进度和状态[0]所持有的信息,它们将会有所不同。

如何将这些作为引用而不是副本?

非常感谢

最佳答案

没有简单的方法,因为 JavaScript 不会将原始值存储为引用,但您可以这样做:

function Picker() {
    this.status = [0, 0, 0];
    Object.defineProperty(this, 'progress', {
      get : function(){ return this.status[0] },
      set : function(p){ this.status[0] = p },
      enumerable : true
    });
}

var picker = new Picker();
picker.progress = 2;
console.log(picker.status[0]) // logs 2

最典型的解决方案可能是使用 getter 和 setter,或者更改设计。

关于javascript - 分配变量值: Reference it instead of copying it,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24779419/

相关文章:

php - 使用 colorbox 为 PHP 表单创建 'thankyou' 弹出窗口

javascript - event.target.name 给出未定义

javascript - (this) 在函数声明之后

JavaScript 变量数学

javascript - 在Nodejs中重新分配变量时,存储旧变量的内存会释放吗?

javascript - 使用输入值创建变量 javascript

javascript - 在 Google Chart 中显示/隐藏线条/数据

javascript - 何时向原型(prototype)添加成员?

javascript - 如何使用cookie来检测用户是否已经提交了表单?

java - 指令分配一个值,但该值不会在任何后续指令中读取或使用