您使用短语“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