Javascript可选if if构造函数内部

时间:2015-04-01 20:58:05

标签: javascript

这是开始的代码。

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。不知道为什么这不起作用。我已经看过其他问题,试图跟进,但我从他们那里尝试的东西似乎没什么帮助。

2 个答案:

答案 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.childundefined进行比较,但您想要的是测试参数child而不是this.child

可以提供快捷方式,而不是使用if/else

this.child = child || 'default';