Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中JSON的默认值_Javascript_Json_Default Value - Fatal编程技术网

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将是空的,它不想被比较