を編集します。私が以下の処理を行っているのは、getter/setterへの参照を辞書に格納できる理由です。これにより、辞書のキーをHTML要素のIDにすることができます。このように、プロパティがHTMLに変更された場合、私はのような何かを行うことができます。継承が継承されるときにES6 Javascriptクラスのgetter/setterを格納する
var propData = allMyGetterSetters[e.originalTarget.id];
propData.getSet.set(propData.obj, e.originalTarget.value);
をまた、これは私がループを行うと、すべてのHTMLを更新することができ、私のロジックがそれを変更する必要があります。
クラスのいくつかのプロパティのゲッター/セッターへの参照を格納する必要があります。私はこれを数回行う必要があるため、私は次のメソッドを持って、簡単にするために
Object.getOwnPropertyDescriptor(Object.getPrototypeOf(myClassObj.position), "x");
:私は、次のコードでこれを行うことができた
_makeGetSetObj(object, property){
return {
getSet: Object.getOwnPropertyDescriptor(Object.getPrototypeOf(object), property),
obj: object
};
}
、後続のコードでは、になりますこのように:
var xPos = this._makeGetSetObj(myClassObj.position, "x");
// ...
xPos.getSet.get(xPos.obj);
これは完全に機能します。
はしかし、私は今、私のmyclassObj
オブジェクトのゲッター/セッターへの参照を格納する必要があります。ただし、以下ではこれは実際に私にname
がオブジェクトに存在しないというエラーを出します
this._makeGetSetObj(myClassObj, "name");
を動作しません。私はこの問題は、問題がmyClassObj
ことのようです。この
|-- BaseClass
|-- MyClass
|-- DerivedClass
ようになり、私の継承であり、実際のプロパティname
を持たないタイプDerivedClass
の対象であることを把握するために管理してきましたそれ。
だから、私が行う場合は、この:
this._makeGetSetObj(myClassObj.__proto__, "name");
それはプロトタイプを得るために動作しますが、(私のxPos
例で)上記のように、私はそれを使用しようとすると、まだのようですので、それが失敗しましたDerivedClass
オブジェクトとしてobj
内の参照を格納します。私は私の方法の外に引っ張ると、手動で物事をしようとした場合
、これは動作します:
var name = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(myClassObj.__proto__), "name");
name.get(myClassObj);
他の部分はそうではない一部が__proto__
を必要とする。これは明らかに、しかし私の方法を破ります。
だから、私の質問は:私の現在のロジックを維持する方法はありますか、私が説明した問題と場所のための特別なメソッドを作成する必要がありますか?
ありがとうございました。
「ゲッター/セッターへのハンドルの保存」とはどういう意味ですか?どのような問題を解決しようとしていますか? – jfriend00
@ jfriend00コードスニペットに表示されている内容だけです。おそらく "参照"はより良い言葉でしたか? – David
それは動作するようです。このフィーを試してみてくださいhttps://jsfiddle.net/pcrfuuc9/ –