我在類對象中有一個if/else語句。 if檢查一個布爾語句,但返回錯誤的結果。這個charcode布爾語句有什麼問題?
function person(name) {
this.name = name;
this.age = (function age() {
if (this.name.toLowerCase().charCodeAt(0) <= "n".charCodeAt(0)) {
return "A";
}
else {
return "B";
}
})();
}
var zoey = new person("Zoey");
console.log(zoey.name);
console.log(zoey.age); // returns A
console.log("Zoey".toLowerCase().charCodeAt(0)); // returns 122
console.log("n".charCodeAt(0)); // returns 110
它的工作原理,如果我改變「this.name」布爾語句中只是「名」。任何想法爲什麼?
不太確定,但我認爲這與您的範圍有關。 '(function age(){'創建一個新的作用域,'this'可能不再引用'person'類。Name的作用是因爲名字被傳入類。 – Leeish 2013-02-28 23:42:50
是不是應該使用大字母,我的意思是'Person'而不是'person'? – WooCaSh 2013-02-28 23:44:33