isRegistered不返回true

Run*_*ion 1 javascript jquery

下面的代码应打印出字符串,sname但它没有这样做.根本没有丢失任何错误?

var Student = function(name, fee) {  
    if(fee >= 1000) { 
       this.registered = new Boolean(true);
    } else {
       this.registered = 'not rgistered yet'; 
    }
}  

Student.prototype.isRegistered = function() {
    return this.registered; 
}

var John = new Student('John', 1000);

if(John.isRegistered() === true) {
    $('#sname').text('John is now a registered student');
}  
Run Code Online (Sandbox Code Playgroud)

Gur*_*ngh 5

工作演示

您的问题是以下行:

this.registered = new Boolean(true);
Run Code Online (Sandbox Code Playgroud)

切勿new在JS中使用原始类型.这可以通过更少的击键来完成:

this.registered = true;
Run Code Online (Sandbox Code Playgroud)

new boolean(false)返回一个对象,该对象具有valueOf返回包装值的方法,而不是实际的期望值,true在这种情况下.