-1
標題可能有點混亂,但我有以下問題:與參數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
對象字面值中的一個值。我預計,當我運行上面的代碼時,將創建對象a
,並將property1
值設置爲1.但是,不是我得到了Uncaught TypeError: Cannot read property 'property1' of undefined
錯誤。當我在構造函數的第一行觸發console.log(typ)時,它正確地顯示傳遞給構造函數的值是type1
。爲什麼上面的代碼不起作用,它可以以某種方式修復?
您需要使用這個語法:'對propertyList [典型值] .property1'否則會顯得的屬性名稱** **典型的對propertyList對象(並且此屬性不存在) –