这是开始的代码。
function person(name, age, child){
this.name = name;
this.age = age;
if(this.child == undefined){
this.child = 'default';
}else{
this.child = child;
}
}
var sarah = new person('sarah',34,true);
document.write(sarah.child+' ');
所以我试图在构造函数中创建一个可选属性。但无论我放在child参数中,它总是在打印时显示为“default”。我是JS的新手,刚刚关闭了php。不知道为什么这不起作用。我已经看过其他问题,试图跟进,但我从他们那里尝试的东西似乎没什么帮助。
答案 0 :(得分:1)
为什么不使用child = child || 'default'
而不是if else语句?
这实现了同样的目标。
答案 1 :(得分:0)
正确的代码如下:
function person(name, age, child){
this.name = name;
this.age = age;
if(child == undefined){
this.child = 'default';
}else{
this.child = child;
}
}
var sarah = new person('sarah',34,true);
document.write(sarah.child+' '); // true
解释是,您始终将this.child
与undefined
进行比较,但您想要的是测试参数child
而不是this.child
。
可以提供快捷方式,而不是使用if/else
:
this.child = child || 'default';