Во-первых, вот мой код:
var lastUsedId = '';
var object = {
element: lastElement()
};
function lastElement() {
return lastUsedId;
}
lastUsedId = 123;
console.log(object); // returns '{element: ""}' and should '{element: 123}'
Как вы можете видеть, я определил объект с ключевым element
который должен содержать последний использованный идентификатор элемента. Проблема в том, что я не знаю, что ID еще не пришло, чтобы напечатать результат. Я не могу изменить значение, подобное object.element = 123
из-за моего надежного приложения, поэтому не отправляйте такие комментарии. Для этого вопроса он должен быть структурирован таким образом.
Мой вопрос: могу ли я установить значение как функцию, которая возвращает переменную с последующим изменением содержимого? Может быть, это глупый вопрос, но когда это невозможно, просто скажите это, и я попытаюсь найти другой путь.
Не уверен, что это то, что вы хотите, но вы можете использовать getter
для этого:
var lastUsedId = '';
var object = {
get element() {
return lastElement()
}
};
function lastElement() {
return lastUsedId;
}
lastUsedId = 123;
console.log(object);
lastUsedId = 456;
console.log(object);
могу ли я установить значение как функцию, которая возвращает переменную с последующим изменением содержимого?
Почему бы не сохранить значение только как function
var obj = {
element: lastElement
};
console.log( obj.element() ); //this will invoke the method to get the latest value
object
внешнему плагину, который ожидает строку, поэтому он использует как obj.element
без вызова.
lastElement
и создает новыйobject
с обновленным значением.