我试图通过在构造函数中声明全局变量的值,然后使用函数中的值对其进行初始化来更改它的值。我正在尝试的代码与我在此处键入的代码非常相似。该代码执行,但什么都没有打印出来。有人可以告诉我发生了什么事吗?
class Sample{
constructor(){
let joey ="";
}
fire(){
joey ="Yo";
console.log(joey);
}
}
答案 0 :(得分:3)
使用“ this”关键字在构造函数中声明全局变量。
class Sample{
constructor(){
this.joey ="";
}
fire(){
this.joey ="Yo";
console.log(this.joey);
}
}
答案 1 :(得分:0)
使用类时,请使用“ this”运算符并为“ this”对象分配值,因为“ let joey”的作用域不是全局的(请按照“ let”作用域定义)。参见下文-
class Sample{
constructor(){
this.joey ="";
}
fire(){
this.joey ="Yo";
console.log(this.joey);
}
}
答案 2 :(得分:0)
变量joey
不在fire
的范围内。
创建对象(在本例中为类Sample
的实例)时,可以使用this
对象设置该对象的属性,因为它是对当前对象的引用。如果您使用let
或var
,则该变量将包含在声明它的函数中(在这种情况下为constructor
)。
class Sample{
constructor(){
this.joey ="";
}
fire(){
this.joey ="Yo";
console.log(this.joey);
}
}
let test = new Sample();
test.fire();