您使用短語「JSON對象」有我們有點困惑。 JSON是一個或多個javascript對象序列化的扁平化字符串表示形式。所以,你不會用一塊JSON動態地做任何事情。這只是一個字符串。
如果你的意思是你有一個javascript對象,那麼我們可以討論選項。對於一個JavaScript對象,你有幾個選擇。首先,你可以使用該對象的屬性,並有它的價值體現你想要什麼:
var myObj = {};
myObj.inStock = true;
之後,任何人都可以訪問myObj.inStock
並獲得該屬性的當前值。
如果你想要的是通過函數來計算instock的值,而不是靜態分配給對象,並且希望代碼適用於所有瀏覽器,那麼您將不得不改變訪問方式即通過方法調用:
var myObj = {};
myObj.getInStockValue = function() {
// execute whatever code you want here to
// compute the desired value and return it when done
};
然後,任何人都可以通過myObj.getInStockValue()
訪問它。
在你的具體的例子,你可以改變這一點:
this.setStateIfExists = function (param, option) {
// i'd like this to be 'that.selectedFinderOptions.inStock = option'
that.selectedFinderOptions.param = option;
}
這樣:
this.setStateIfExists = function (param, option) {
// i'd like this to be 'that.selectedFinderOptions.inStock = option'
that.selectedFinderOptions[param] = option;
}
當參數是動態的,幷包含在一個變量,使用[param]
語法代替.param
語法。他們都在邏輯上做同樣的事情,但[param]
語法是唯一一個當你想查找的東西的名字在變量中時起作用的語法。
如果您有JSON,則需要對其進行反序列化,在結果對象上設置屬性,然後將其重新轉換爲JSON。 (除非你打算把它全部當作字符串處理。)你真的是指「對象」而不是「JSON對象」嗎? – nnnnnn