javascript - 这怎么可能?访问对象变量

标签 javascript variables object

这怎么可能?我认为在前两个示例中它应该返回未定义。

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.secretNumthis._secretNum都是未定义的。但两者num > undefinednum < undefined返回假。所以if结构除了到达第三个分支之外没有其他可能性。

关于javascript - 这怎么可能?访问对象变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46367931/

相关文章:

java - 类范围变量与方法范围变量

r - 如何在没有变量的情况下以编程方式使用 dplyrcross()?

javascript - 使用 Javascript - 如何单击没有 ID、值或名称的提交按钮

javascript - Angular JS 错误 - http ://errors. angularjs.org/1.5.0/$injector/unpr?p0

Java 输出变量作用域问题

javascript - 在 Three.js 中动态地将一个网格替换为另一个新网格

java - 为什么抽象类可以强制重写具体方法?

javascript - 使用 JavaScript 和 lodash 汇总对象数组数据的最佳方法

javascript - 如何使用 react-router-dom 重定向

javascript - 响应式自定义展开预览