これは確かに奇妙ですが、我慢してください:
Dart から JavaScript を呼び出せるように、Dart の js-interop パッケージを使用しています。
私が使用しなければならないシステムには、特定のグローバル JavaScript オブジェクトを介した通信パスがあります。このオブジェクトは、ネイティブ コードを呼び出す方法として JavaScript コンテキストに挿入されますが、これは真の JavaScript オブジェクトではありません。少しハッキーです。
このオブジェクトに直接 Dart Proxy を作成することはできません。Proxy コードは、このハッキー オブジェクトには存在しない特定のコンストラクターとプロトタイプ チェーンの側面に依存しているためです。具体的には、dart2js によって生成された JsObject_JsObject 関数は、constr が JS オブジェクトのコンストラクターである「constr.bind.apply」を呼び出そうとします。このオブジェクトには .bind プロパティがありません。これは、他のオブジェクトから正しく継承されていないためです。また、プロトタイプ チェーンを追加/修正する試みはこれまでのところすべて失敗しています。
それを修正できれば、それは素晴らしいことです。しかし、私の他のオプションは、プロキシをプロキシすることです.wacky-hacky-native-objectをラップしてプロキシする真のJavascriptオブジェクトを作成し、そのためのDart Proxyを作成します。
その JS プロキシを作成する最もクリーンな方法が何であるかに興味があります。Dart からさまざまな数のパラメーターを使用してさまざまな関数を呼び出し、常に維持する必要なく、呼び出しがネイティブ オブジェクトにクリーンに渡されるようにしたいと考えています。ネイティブオブジェクトに追加された関数がプロキシに追加されていることを確認することにより、私の JS プロキシ。
多くのメンテナンスを必要とせず、ネイティブオブジェクトへの呼び出しを自動的にリダイレクトするだけで、このプロキシをばかげないようにする素晴らしい/不気味なアイデアを誰かが持っていますか?