タイトルは少し混乱するかもしれませんが、私はこの問題を次のようしている。JavaScriptクラスのコンストラクタオブジェクトからリテラル
var propertyList = {
type1: {property1: 1},
type2: {property1: 2}
}
class Test {
constructor(typ){
this.property1 = propertyList.typ.property1;
}
}
var a = new Test('type1');
コードを一目瞭然である - 私はa
オブジェクトのproperty1
プロパティを設定しますコンストラクタで値を手動で渡すのではなく、propertyList
オブジェクトのリテラルから値の1つをコンストラクタに渡すことによって値を選択します。私は上記のコードを実行すると、property1
の値を1に設定してオブジェクトa
が作成されると予想していましたが、その代わりにUncaught TypeError: Cannot read property 'property1' of undefined
エラーが発生しました。コンストラクタの最初の行でconsole.log(typ)をパストすると、コンストラクタに渡された値がtype1
であることが正しく示されます。上記のコードがうまくいかず、何とか修正できますか?
あなたはこの構文を使用する必要があります: 'のpropertylist [標準] .property1'それ以外の場合は、プロパティ名を探しますが**のpropertylistのtyp **オブジェクト(このプロパティは存在しません) –