87,921
社区成员
发帖
与我相关
我的任务
分享
var Cat2 = {
createNew: function () {
var cat = {};
cat.name = "大毛";
cat.name2; //这里是undefined还是null?
cat.makeSound = function () { console.log("喵喵喵"); };
return cat;
},
toString: function () {
return "dxxxxddd";
}
};
cat.name2; //这里是undefined还是null? [/quote]
Cat["name"] == undefined && Cat["name"] == "" 我说的是这句代码,如果没有赋值,意味着这个变量是undefined,所以会执行后面那句,将它的值默认赋值为空【另外我现在才看到后面的是==不是=】,并不是说如果没有赋值它的默认值为空[/quote]
你好,我明白了你的意思,阁下的意思是说:
假设createNew里没有申明name这个属性,那么
Cat["name"] == undefined && Cat["name"] = ""
执行完== 后,再执行 =,这样就会添加属性,且赋值为空字符串。, 对否 ?
[/quote]
对的,实际上A&&B 跟if(A){B}是一个道理,另外 为什么在两个function之间用的是逗号而不是分好,是因为Cat是一个JSON对象,它需要符合JSON的格式 {a:'a',b:'b'} 中间的是用分好隔开,key和value对应,只不过这里的value是一个函数而已var Cat2 = {
createNew: function () {
var cat = {};
cat.name = "大毛";
cat.name2; //这里是undefined还是null?
cat.makeSound = function () { console.log("喵喵喵"); };
return cat;
},
toString: function () {
return "dxxxxddd";
}
};
为什么函数和函数之间必须用逗号隔开? 我用分号立即报错。
这是遵循什么原则?
,如果name没有被赋值的话则默认它为空值,一般的话在createNew这个函数中会有参数复制给name
你确定是空值,
我举个例子吧:
var Cat2 = {
createNew: function () {
var cat = {};
cat.name = "大毛";
cat.name2; //这里是undefined还是null?
cat.makeSound = function () { console.log("喵喵喵"); };
return cat;
},
toString: function () {
return "dxxxxddd";
}
};
cat.name2; //这里是undefined还是null? [/quote]
Cat["name"] == undefined && Cat["name"] == "" 我说的是这句代码,如果没有赋值,意味着这个变量是undefined,所以会执行后面那句,将它的值默认赋值为空【另外我现在才看到后面的是==不是=】,并不是说如果没有赋值它的默认值为空[/quote]
你好,我明白了你的意思,阁下的意思是说:
假设createNew里没有申明name这个属性,那么
Cat["name"] == undefined && Cat["name"] = ""
执行完== 后,再执行 =,这样就会添加属性,且赋值为空字符串。, 对否 ?
var Cat2 = {
createNew: function () {
var cat = {};
cat.name = "大毛";
cat.name2; //这里是undefined还是null?
cat.makeSound = function () { console.log("喵喵喵"); };
return cat;
},
toString: function () {
return "dxxxxddd";
}
};
cat.name2; //这里是undefined还是null? [/quote]
Cat["name"] == undefined && Cat["name"] == "" 我说的是这句代码,如果没有赋值,意味着这个变量是undefined,所以会执行后面那句,将它的值默认赋值为空【另外我现在才看到后面的是==不是=】,并不是说如果没有赋值它的默认值为空var Cat2 = {
createNew: function () {
var cat = {};
cat.name = "大毛";
cat.name2; //这里是undefined还是null?
cat.makeSound = function () { console.log("喵喵喵"); };
return cat;
},
toString: function () {
return "dxxxxddd";
}
};
cat.name2; //这里是undefined还是null?
var Cat = {
createNew: function(name){
var cat = {};
cat.name=name;
cat.makeSound = function(){ console.log("喵喵喵"); };
return cat;
}
};
console.log(Cat.createNew().name);//如果此处不传参数则会输出undefined,所以需要加判断语句,将它初始为 ""