问题标签 [object.observe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
126 浏览

javascript - Object.observe() 不起作用原生 Image 对象

这不起作用(在 OSX 上的 chrome 39 中):

但这将:

这也将是:

因此问题与 Image 作为本机构造函数没有直接关系(因为 XMLHttpRequest 按预期工作) - 它似乎是特定于设置 img.src 的东西。我只能猜测这是因为设置 src 的行为很像方法(因为它会导致发出请求)。JS中是否存在可以像属性一样调用的方法?

假设不是这样,有没有人知道/可以猜测这是否是 Object.observe 的期望行为(在mdn docs 中看不到任何内容),如果不是,我将其报告为错误的最佳位置可能是哪里?

0 投票
1 回答
274 浏览

javascript - 如何在 javascript 中使用 Object.deliverChangeRecords 方法

我了解如何使用Object.observe(), 和Object.getNotifier(obj).notifyor Object.getNotifier(obj).performChange, 但我该如何使用Object.deliverChangeRecords()

0 投票
1 回答
1004 浏览

javascript - Object.observe 而不是用 AngularJS 1.x 进行脏检查

如果浏览器支持,有没有办法Object.observe代替 AngularJS 1.x 中的脏检查?这可以显着提高性能。

Object.observe目前至少被谷歌浏览器支持:http: //kangax.github.io/compat-table/es7/

0 投票
1 回答
115 浏览

javascript - 观察对象是否发生了变化

每次对象更改时是否可以执行一些代码?

它似乎仅在 Firefox 上可用:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch

如何在 JavaScript / node.js 中实现这一点?(如果可能,不使用 getter/setter 方法)

0 投票
1 回答
86 浏览

javascript - JavaScript Object.Observe 委托

我有 JavaScript 数组,它由许多对象组成。

我想用来Object.observe 处理每个对象的数据更改。

有没有办法在这里应用事件委托之类的东西,以便不申请observe每个对象?

如果我使用Object.observe数组本身而不是更改其项目不会触发任何事情。

0 投票
1 回答
87 浏览

javascript - Object.observe order

I am using Object.observe() on node v0.11.13.

It looks like the time of the observation callback to be called can't be predicted. is it a bug or a feature?

Take a look at this code:

The output looks like:

I would expect an opposite order. I wonder if this is related to the spec or to node impl' of this feature.

0 投票
1 回答
3111 浏览

javascript - Object.observe - 并非所有主要浏览器都支持,我可以使用什么替代方案?

我有这个在 Chrome 中工作的函数,当名为finishedLoading 的变量更改值时,它会打印到控制台。

这在许多其他现代浏览器(例如 firefox、safari)中不起作用。有没有我可以使用的替代方案得到更好的支持?谢谢!

0 投票
0 回答
80 浏览

javascript - 什么函数改变了我的对象(使用 Object.observe 获取此信息)

一段时间以来,我研究Object.observe函数并想知道是否可以将其用作“观察者”来帮助我找到作为更改发起者的函数(带有堆栈跟踪)。请参阅下面的代码片段:

我怎样才能得到callerFun改变的信息struc

0 投票
3 回答
1828 浏览

google-chrome - 如何使用 Polymer 检测数组中对象属性的变化?

假设我想用 Polymer (v0.5.5) 创建一个待办事项列表。在我的元素中,我定义了一个属性tasks,它是一个包含对象列表的数组,例如{ name: 'foo', done: false }. 我想显示剩余任务的数量,所以我需要检测done数组中包含的对象的属性何时发生变化。

这是代码的摘录:

使用 Firefox,它可以工作,但不能使用 Chrome (41.x)。确实,Chrome 只检测数组本身的变化(例如,如果我添加一个新任务,剩余的计数会正确更新)。

我怎么做?

谢谢


编辑,关于安迪的回答

当我做那种事情时:

如果我对数组本身进行修改(如 中tasks.push({...})),则会显示一个弹出窗口。但是,如果我更改包含在数组中的对象的属性(例如tasks[0].done = true),则什么也不会发生。这就是我问题的根源...

0 投票
1 回答
806 浏览

javascript - 观察 ES6 模块属性

我有一个模块:

someMethod将执行迭代数组的操作。我想progress.val在每次迭代时加一。然后应该可以观察到这一进展:

不幸的是,observers 回调只被调用一次,每次迭代都包含一个更改数组。

如何在每次迭代中调用回调?