javascript中JSON的默认值
在守则中:javascript中JSON的默认值,javascript,json,default-value,Javascript,Json,Default Value,在守则中: slider.init({ foo: "bar" }); var slider={ init:function(data){ } } 如果我使用data.foo,我将得到“bar” 假设我有一个名为fish的可选变量,它可以包含在JSON变量中。如果我引用了data.fish,我会被告知它未定义,或者会抛出错误或其他东西。是否有一种方法可以为fish分配默认值,以便当我请求数据.fish时,即使未在参数中设置,也可以获得默认值?如果未定义,可以使用or运算符分配默认值,例如
slider.init({
foo: "bar"
});
var slider={
init:function(data){
}
}
如果我使用data.foo
,我将得到“bar”
假设我有一个名为
fish
的可选变量,它可以包含在JSON变量中。如果我引用了data.fish
,我会被告知它未定义,或者会抛出错误或其他东西。是否有一种方法可以为fish分配默认值,以便当我请求数据.fish
时,即使未在参数中设置,也可以获得默认值?如果未定义,可以使用or运算符分配默认值,例如:
var slider = {
init:function(data){
var fish = data.fish || "default value";
}
}
或者,您可以创建一个“扩展”函数,以合并两个对象,类似于jQuery函数:
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
这是一个非常好的概念,我不知道你能做到这一点,谢谢。哈哈,谢谢-我一直在想类似的事情,但就是不能把我的手指放在上面-我还认为它可能会抛出错误,因为data.fish将是空的,它不想被比较