【发布时间】:2016-12-18 14:31:58
【问题描述】:
有没有办法在参考更改时收到通知?
我觉得我需要明确我的意思:
var a = { aa: 1 };
a = { aa: "allowed" }; // `a`'s reference was modified
a.aa = "foo"; // `a` was mutated, but the reference was not modified. Don't care.
这是我感兴趣的参考更改。在 Swift 中,这是一个 didSet 块。我想观察a 指向的引用的变化。
完整示例:
var reel = [];
function print(message) {
reel = reel.concat([message]); // non-mutating push changes "reel" reference to this new object.
}
Object.SOME_FUNCTION(reel, onChangeReel); // not a real function
function onChangeReel() { /* update the DOM */ }
【问题讨论】:
-
我将其作为副本关闭,因为我相信链接的副本涵盖了这一点,并且不仅指出了 ecma 7 中出现的新功能,而且还指出了 github 上的一个 shim,它有助于弃用的观察功能。跨度>
-
这也可能是重复的问题:stackoverflow.com/q/28661401/1026459
-
@TravisJ 但他对观看/观察/代理属性更改不感兴趣;他对观察变量本身很感兴趣。
标签: javascript observable object.observe