問題タブ [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.
javascript - Ember.js オブジェクトオブザーバーは ES6 Harmony Object.observe と同等ですか?
オブジェクト内の新しい観察 ES6 機能を見て、Ember と ES6 は同等なのか異なるのか疑問に思いました。Ember でWatchjsポリフィルを安全に使用できますか?
javascript - Object.observe() はパフォーマンスにどのように影響しますか?
Object.observe () JavaScript API を使用すると、任意のコードで、任意の JavaScript オブジェクトのすべてのプロパティ変更に関する変更通知を受け取ることができます。
これは、JavaScript エンジン (つまり V8) で実行できるコード生成とパフォーマンスの最適化に深刻な影響を与えませんか? 変更通知を生成する必要がある場合、生成されたネイティブ コードはオブジェクトへのすべての書き込みをチェックする必要があるようです。特定のオブジェクトに通知が設定されているかどうかを静的に判断することはできません。したがって、チェックを最適化することはできません。
準拠している JavaScript エンジンは、この API が原因で永続的かつ重大なパフォーマンスの低下にロックインされているようです。
angularjs - Object.observeはAngularjsに大きな後押しを提供しますか?
現在、Angularは数千のオブジェクトの後で速度が低下しているため、スプレッドシートやコンウェイのライフゲームのようなものを作成できません。
Object.observeが実装されると(遠い、遠い将来)、これらはAngularで可能になりますか?それとも、DOM操作がチョークポイントになるのでしょうか。
javascript - Object.observe と Object.watch の違いは何ですか
Object.watch: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch
Object.observe: http://wiki.ecmascript.org/doku.php?id=harmony:observe
どちらも高いレベルで同じことをしているようです。それらの顕著な違いは何ですか?
javascript - TypeError: オブジェクト関数 Object() { [ネイティブ コード] } にはメソッド 'observe' がありません
最近この関数 Object.observe() を知り、アプリに実装してみました。
しかし、上記のエラーが表示されます。
ここで私が見逃しているものに光を当てることができますか。
javascript - Object.observe() でのプロパティの上書き
オブジェクトに設定されているすべての関数を上書きするために、 Chrome の実験的なObject.observe()を使用したいと考えています。
残念ながら、コンソールにはまだ「helloWorld() が呼び出されました」と表示されます。オブジェクトオブザーバーで現在変更されている値を実際に上書きすることは可能ですか?
これは実験にすぎないので (本番コードはありません!)、どんな種類の解決策も歓迎します。
javascript - 変更ウォッチャーを使用して Object.observe() の下のネイティブ プロパティを観察する
Object.observe()
Chrome ではデフォルトでオンになっているため、ブラウザーの組み込みプロパティ ( hidden
、title
、draggable
)を再利用したい場合がたくさんあります*Changed
が、プロパティが変更されたときにウォッチャーが呼び出されなくなりました。
一例は次のとおりですhidden
: http://jsbin.com/jizikaje/1/edit (hiddenChanged()
決して呼び出されません)
私の現在の回避策はattributeChanged()
、属性の変化を観察するために使用することです:
推奨されるアプローチは何ですか?
ところで、ネイティブ プロパティを使用しようとしたときに警告をスローすると、デバッグに時間がかかります: https://github.com/Polymer/polymer/issues/379
javascript - 複数の場所から同じオブジェクト/プロパティを監視する最も効率的な「監視」jsは何ですか?
ノードの代わりにECMA7Object.observe
またはMozillaを使用してデータバインディングを行います。Object.watch
eventEmitter
についてObject.observe
は、Android ブラウザの互換性に関する実装が見つかりません。基本的にはsetTimeoutポーリングを使わなければならないので諦めました。
代わりに、Object.watch
Chrome のライブラリやネイティブの Firefox などを使用して、ポーリングなしで実行できます。
私が見つけたコードは
これは
ただし、大きな問題が発生します。さまざまな場所に複数のウォッチを実装すると、最初の obj.watch のみがトリガーされ、残りはトリガーされません。
その理由は明らかです。
最初のトリガーで、残りの obj.watch は変更された値を監視するように自動的に設定されます。
テストコード:
結果: エラーは発生しませんでしたが、アラートは 1 回だけ発生しました。
実際、同じオブジェクト インスタンス/プロパティに対して複数の監視ブロックをトリガーできる代替ライブラリ/メカニズムを見つけようとしています。
ここでも、eventEmitter パターンは避けますが、observer パターンは避けます。何か考えはありますか?ありがとう。
javascript - Object.observe - 複数のオブザーバーのサポート?
Object.observe()
複数の呼び出しを介して複数のオブザーバーを登録できるようになるかどうか (実装されたら) を誰かに教えてもらえますか? それとも最後の1つだけが残りますか?
たとえば、次のようにします。
オブジェクトが更新されたとき、またはのみ、両方の関数が呼び出されmySecondFunction
ますか?