哪些浏览器支持Object.observe?

55
哪些浏览器支持 Object.observe ?我很惊讶找不到任何相关信息。(您是否知道此功能的预计到达时间?)
关于Object.observe:"Object.observe允许直接观察ECMAScript对象的更改。它允许观察者接收描述所观察对象集合发生更改的一系列有序记录。" —请参见ecmascript.org,解决方案部分。

编辑 2015年11月:显然取消了Object.observe:

http://www.infoq.com/news/2015/11/object-observe-withdrawn

https://esdiscuss.org/topic/an-update-on-object-observe
"我打算从TC39中撤回Object.observe提案"

https://esdiscuss.org/topic/save-object-observe-please-make-weakmap-weakset-observable
"拯救Object.observe()!(请)"


4
我认为在广泛支持这一点之前还需要一段时间。它甚至还没有出现在最新的草案规范中... 编辑:啊,那是因为它们的目标是ES7。所以是的,要等一段时间。 - T.J. Crowder
这里有一个 shim - Ram
7个回答

31

您可以使用kangax的浏览器兼容性表格来查看Object.observe

它似乎是ECMA Script 7规范的一部分。幸运的是,在撰写本文时,我的当前浏览器Chrome 33是唯一支持它的浏览器 :)

如果您想在Chrome 33中启用它,

  1. 访问chrome:// flags /

  2. 并启用启用实验性JavaScript


4
有趣。很多东西首先出现在Firefox而不是Chrome。这一定是由委员会的V8成员带头... - T.J. Crowder
请注意,以下是有关编程的内容,请将其从英语翻译成中文。仅返回已翻译的文本:请注意,原始链接不再有效。请使用http://kangax.github.io/compat-table/es7/。 - ratiotile
Kangax的表格显示,它只在Chrome 33-37中使用"实验性JavaScript功能"标志才可用。我有Chrome 38,而且它可以正常工作,没有启用该标志,因此(假设Kangax的表格是正确的),则在Chrome 38中已启用它。 - Josh
@T.J.Crowder 我认为这是由于 Angular 引起的。 - simonzack
我们什么时候能在FF中看到它呢? - Nikos
@Nikos 我只找到了这个错误,但不幸的是目前没有人在处理它 :'( - thefourtheye

8

6
https://github.com/Polymer/observe-js - 这不是一个 polyfill,而是一个单独的库,如果当前浏览器实现了 Object.observe,则可以使用它。 - Victor
@Victor 澄清一下;它提供了一个polyfill以观察对象的变化。该库确实会退回到(缓慢的)脏检查,而不是使用原生的Object.observe - Bart Verkoeijen

4

七年过去了,我偶尔还是会醒来时希望有Object.observable - Tamas Hegedus

3

Chrome 35+ 支持 Object.observe() 方法。

更多细节请查看:html5rocks

更新:已转移到Chrome 36 beta版本。


刚刚下载了Chrome 35,但好像还没有生效...即使在标志中启用了实验性js...奇怪?! - David Fregoli
1
是的,它不在第35行,而在第36行 https://twitter.com/addyosmani/status/469145484901511168 周围有些混淆。 - David Fregoli
现在看起来它在Chrome 36 Beta中。不过需要进一步核实。 - Nitin Jadhav
http://www.chromestatus.com/features/6147094632988672 - 在Chrome 36中标记为“默认启用”。 - Victor
默认情况下在Chrome 36(目前的测试版)可用。 - Jagtesh Chadha

2

0

Chrome 36+,Opera 30+。我回答这些问题最喜欢的方式是 http://caniuse.com。它清晰、简洁,并且具有即时搜索功能。


0

免责声明:我是object-observer库的作者。

basarat的答案绝对是正确的 - 现在没有浏览器支持它。

大多数polyfill执行“脏检查” - 不是实现观察的最佳方式,我个人认为。

更好的方法是选择几个提供相同功能的库之一,利用本地代理功能,object-observer只是其中之一。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接