使用动态值在对象中设置值

时间:2017-09-14 11:14:35

标签: javascript object

首先,这是我的代码:

var lastUsedId = '';
var object = {
    element: lastElement()
};

function lastElement() {
    return lastUsedId;
}

lastUsedId = 123;

console.log(object); // returns `{element: ""}` and should `{element: 123}`

如您所见,我已使用键element定义了对象,该对象应包含最后使用的元素的ID。问题是我不知道该ID,但它打印结果。由于我强大的应用程序,我无法更改object.element = 123之类的值,所以不要发送类似的评论。对于这个问题,它必须像这样构建。

我的问题是:我可以设置像函数一样的值,它会返回内容随后更改的变量吗?也许这是一个愚蠢的问题,但如果不可能只是说出来,我会尝试寻找其他方式。

2 个答案:

答案 0 :(得分:3)

不确定这是您想要的,但您可以使用getter

var lastUsedId = '';
var object = {
    get element() {
      return lastElement()
    }
};

function lastElement() {
    return lastUsedId;
}

lastUsedId = 123;
console.log(object);

lastUsedId = 456;
console.log(object);

答案 1 :(得分:2)

  

我可以设置像function这样的值,它返回变量   内容后来改变了吗?

为什么不将该值仅保留为function

var obj = {
    element: lastElement
};
console.log( obj.element() ); //this will invoke the method to get the latest value