【发布时间】:2017-09-22 15:10:48
【问题描述】:
这怎么可能?我认为在前两个示例中它应该返回 undefined。
function SecretCode() {
var _secretNum = 78;
this.guessNum = function(num) {
if(num > _secretNum) {
return console.log("Lower");
} else if (num < _secretNum) {
return console.log("Higher");
} else {
return console.log("You guessed it");
}
}
}
let secret = new SecretCode();
secret.guessNum(this.secretNum); //You guessed it
secret.guessNum(this._secretNum); //You guessed it
secret.guessNum(secretNum); //is not defined
secret.guessNum(_secretNum); //is not defined
console.log(secret.secretNum); //undefined
console.log(secret._secretNum); //undefined
【问题讨论】:
-
你在
window的上下文中运行你的函数,所以this指的是window,而不是secret -
调用
secret.guessNum(this.secretNum)中的this指的是window,window没有secretNum所以它是未定义的,前两个条件不满足,else语句运行。跨度>
标签: javascript variables object