在javascript中访问构造函数中的变量

时间:2017-11-30 08:03:48

标签: javascript

为什么我们无法访问构造函数中定义的变量。以下是给定的条件。

    var getEmployee = function(name){
                var usrId = 9;
                this.name = name;
            }
    var emp = new getEmployee("Karlie Kloss");
    console.log(emp.usrId);

2 个答案:

答案 0 :(得分:2)

您正在尝试访问本地变量。变量有一个范围。因为你在函数中定义了变量(使用var userId)。因此其范围仅限于其功能。你不能在该函数之外访问该变量。使用它而不是var。

var getEmployee = function(name) {
    this.usrId = 9;
    this.name = name;
}

var emp = new getEmployee("Karlie Kloss");
console.log(emp.usrId);

您可以在此处研究变量范围: - https://docs.microsoft.com/en-us/scripting/javascript/advanced/variable-scope-javascript

答案 1 :(得分:0)

这是因为变量usrId是用var声明的:所以它不是"附加"对象。

为此,您必须使用this代替var,如下所示:

var getEmployee = function(name) {
    this.usrId = 9;
    this.name = name;
}

var emp = new getEmployee("Karlie Kloss");
console.log(emp.usrId);

关键字var使得可变范围限定为父级" top-block" (例如功能),所以它在外面不可见。