問題タブ [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 に答える
1004 参照

javascript - AngularJS 1.x でのダーティ チェックの代わりに Object.observe

Object.observeブラウザーでサポートされている場合、AngularJS 1.x のダーティ チェックの代わりに使用する方法はありますか? これにより、パフォーマンスが大幅に向上する可能性があります。

Object.observe現在、少なくとも Google Chrome でサポートされています: 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 に答える
3111 参照

javascript - Object.observe -- すべての主要なブラウザーでサポートされているわけではありません。代わりに何を使用できますか?

私は Chrome で動作するこの関数を持っています。これは、finishedLoading という変数が値を変更したときにコンソールに出力されます。

これは、他の多くの最新のブラウザー (firefox、safari など) では機能しません。より適切にサポートされる、使用できる代替手段はありますか? ありがとう!

0 投票する
3 に答える
1828 参照

google-chrome - Polymerを使用して配列内のオブジェクトのプロパティの変更を検出する方法は?

Polymer (v0.5.5) で todo リストを作成したいとしましょう。私の要素では、プロパティを定義しますtasks。これは、のようなオブジェクトのリストを含む配列です{ name: 'foo', done: false }。残りのタスク数を表示したいのでdone、配列に含まれるオブジェクトのプロパティが変更されたことを検出する必要があります。

コードの抜粋を次に示します。

Firefox では機能しますが、Chrome (41.x) では機能しません。実際、Chrome は配列自体の変更のみを検出します (たとえば、新しいタスクを追加すると、残りのカウントは正しく更新されます)。

それ、どうやったら出来るの?

ありがとう


編集、アンディの回答について

私がそのようなことをするとき:

配列自体を変更すると (のようにtasks.push({...}))、ポップアップが表示されます。しかし、配列に含まれるオブジェクトのプロパティ (例: tasks[0].done = true) を変更しても、何も起こりません。それが私の問題の原因です...

0 投票する
1 に答える
806 参照

javascript - ES6 モジュールのプロパティの観察

モジュールがあります:

someMethod配列が反復される操作を実行します。繰り返しごとに1つずつ増やしたいと思いprogress.valます。この進行状況は観察可能です。

残念ながら、オブザーバーのコールバックは 1 回だけ呼び出され、反復ごとに 1 つの項目を持つ変更の配列を保持します。

各反復でコールバックを呼び出すにはどうすればよいですか?