Sunday, May 12, 2024
 Popular · Latest · Hot · Upcoming
155
rated 0 times [  162] [ 7]  / answers: 1 / hits: 17499  / 15 Years ago, sun, september 6, 2009, 12:00:00

In the code:



slider.init({
foo: bar
});

var slider={
init:function(data){
}
}


If I use data.foo, I will get bar.



Supposing I have an optional variable called fish which can be included in the JSON variable. If I reference data.fish, I will be told that it is undefined or an error will be thrown or something. Is there a way that I can assign a default value to fish so that when I request data.fish, even though it is not set in the parameter, I will get a default value?


More From » json

 Answers
48

You can use the or operator to assign default values in case the aren't defined, for example:



var slider = {
init:function(data){
var fish = data.fish || default value;
}
}


Or you can make an extend function, to merge two objects, similar to the jQuery extend function:



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

[#98747] Wednesday, September 2, 2009, 15 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
alexander

Total Points: 693
Total Questions: 114
Total Answers: 95

Location: Indonesia
Member since Wed, Jul 7, 2021
3 Years ago
alexander questions
;