在代码中:
slider.init({
foo: "bar"
});
var slider={
init:function(data){
}
}
如果我使用 data.foo
,我会得到“bar”。
假设我有一个名为 fish
的可选变量,它可以包含在 JSON 变量中。如果我引用 data.fish
,我会被告知它是未定义的或者会抛出错误或其他什么。有没有一种方法可以为 fish 分配一个默认值,这样当我请求 data.fish
时,即使它没有在参数中设置,我也会得到一个默认值?
最佳答案
如果未定义,您可以使用 or 运算符分配默认值,例如:
var slider = {
init:function(data){
var fish = data.fish || "default value";
}
}
或者你可以做一个“扩展”功能,合并两个对象,类似于 jQuery extend功能:
function extend (obj1, obj2) {
var result = obj1, val;
for (val in obj2) {
if (obj2.hasOwnProperty(val)) {
result[val] = obj2[val];
}
}
return result;
}
var defaults = {val1: 1, val3: 3, fish: 'fish'};
extend(defaults, {val2: 2}); // returns Object val1=1 val3=3 fish=fish val2=2
关于javascript - javascript 中 JSON 的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386467/