私は基本クラスの継承のためにmootools 1.4.3を使用しています。私は実際に別のクラスライブラリからいくつかのコードを変換しています。この他のクラスライブラリは、あらかじめ定義された関数名テンプレート(メンバー関数_ _xxxを取得すると、xxxのゲッターを生成する)に基づいてゲッターとセッターを動的に作成します。私はmootoolsと同様のことをしたいと思っていました。私はJavascriptの新機能ではありませんが、より高度な概念にはなじみがありません。自動ゲッター/セッター
私は部分的に動作するようにしました。 Classオブジェクトが定義されているコードでは、クラスパラメータをループし、defineGetterまたはdefineSetterをそれに応じて追加します。
これは素晴らしい作品、それが適切にゲッターとセッターを作成します。それが失敗するところは、子クラスを作成するときです。これらの動的getter/setterは、子クラスに伝播されません。私はこれが可能かどうか、もしそうなら、それがどのように行われているのか分かりません。 MooToolsはクラスとこれらのクラスに上記の変更使用:fooのログで
を私はバーのgetterとsetterを見ることができます。 bazのログではquuxのゲッターとセッターを見ることができますが、getterとsetterを親から見たいと思います。繰り返しますが、これを動作させることができれば、このコードの変換に多くの時間を節約できます。
あなたのユースケースを説明してもらえますか?可能なメリットは、自動的に、特定のプロパティにマップするプロトタイプの関数を作成することです。おそらくClass.Mutatorsはゲッター/セッターを受け取るべき変数を宣言できる場所です。 –
基本的には、__get__XXX型と__set__XXX型の関数を持つ既存のコードをいくつか取り、それぞれのコンストラクタで__defineGetter__と__defineSetter__を追加するのではなく、MooToolsを変更してこれらを作成したかったのです。私の試みは多少はうまくいったが、結果として得られる基本クラスgetters/setterは子クラスには利用できない。 – brandon