为什么我们无法访问构造函数中定义的变量。以下是给定的条件。
var getEmployee = function(name){
var usrId = 9;
this.name = name;
}
var emp = new getEmployee("Karlie Kloss");
console.log(emp.usrId);
答案 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" (例如功能),所以它在外面不可见。