有没有办法通知参考变更?
我觉得我需要明确我的意思:
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 */ }
答案 0 :(得分:0)
通过"引用更改",您似乎意味着变量值的变化。
不,没有现成的或建议的方法。
可以观看的内容 - 使用奄奄一息的Object.observe
提案或使用代理,可以改变属性值。
答案 1 :(得分:-1)
根据Adam Klein(该技术的设计者之一)发布了这个here:
经过与相关各方的多次讨论后,我计划从TC39撤回Object.observe提案(目前它位于ES规范流程的第2阶段),并希望在今年年底之前取消对V8的支持(根据chromestatus.com的说法,该功能用于0.0169%的Chrome浏览量。)
对于一直在尝试使用O.o并正在寻求转换路径的开发人员,请考虑使用MaxArt2501/object-observe之类的填充或polymer/observe-js之类的包装库。