如何使对象的属性始终具有与另一个属性相同的值

时间:2017-02-20 14:56:05

标签: javascript

我有以下对象

{
   a: "123"
   b: "$a"
}

b应始终具有a的值。

我是否知道如何使用JavaScript?

3 个答案:

答案 0 :(得分:2)

您可以对属性b使用getter方法和对象。

var obj = {
    a: "123",
    get b() {
        return this.a;
    }
};

console.log(obj.b);

否则,您正在寻找ES6功能Proxy

  

Proxy对象用于定义基本操作的自定义行为(例如属性查找,赋值,枚举,函数调用等)。

然后选择prop并检查该值是否包含$并返回此属性的此值。

var obj = { a: "123", b: "$a" },
    p = new Proxy(obj, {
        get: function(target, prop) {
            return target[prop][0] === '$' ? target[target[prop].slice(1)] : target[prop];
        }
    });

console.log(p.b);

答案 1 :(得分:0)

如果您的意思是真正的JavaScript对象,则可以通过Object.defineProperty()使用getter和setter来完成此操作。

答案 2 :(得分:-1)

或者你可以创建一个“类”

    var obj= new function()
    {
    this.a=1212,
    this.b=this.a

    }
console.log(obj.b)