这怎么可能?我认为在前两个示例中它应该返回未定义。
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
最佳答案
是的,作为函数调用的参数,this.secretNum
和this._secretNum
都未定义。但是num > undefined
和num < undefined
都返回false。因此,if
结构除了进入第三分支外别无其他可能性。
关于javascript - 这怎么可能?访问对象变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46367931/