У меня есть объект, содержащий геттер.
myObject {
id: "MyId",
get title () { return myRepository.title; }
}
myRepository.title = "MyTitle";
Я хочу получить объект вроде:
myResult = {
id: "MyId",
title: "MyTitle"
}
Я не хочу копировать получателя, так:
myResult.title; // Returns "MyTitle"
myRepository.title = "Another title";
myResult.title; // Should still return "MyTitle"
Я попробовал:
- $. extend(): Но он не перебирает геттеры. http://bugs.jquery.com/ticket/6145
- Итерация свойств, предложенных здесь, но она не перебирает геттеры.
- Как я использую angular, используя Angular.forEach, как предложено здесь. Но я получаю только свойства, а не получатели.
Любая идея? спасибо!
Обновление Я устанавливал getter с помощью Object.defineProperty как:
"title": { get: function () { return myRepository.title; }},
Как можно прочитать в документе:
перечислимый true тогда и только тогда, когда это свойство появляется во время перечисление свойств на соответствующем объекте. По умолчанию ложь.
Настройка перечислимого: true исправить проблему.
"title": { get: function () { return myRepository.title; }, enumerable: true },