[英]Javascript - Class - Method Returning Undefined When Calling Constructor Property
我目前正在学习 Javascript。 当我运行以下代码时,我变得不确定。 不知道出了什么问题。 一切似乎都很好。 任何帮助将不胜感激。 谢谢你。
class User{
constructor(){
this.array = [1, 2, 3]
}
static getNumber(){
return console.log(this.array)
}
}
User.getNumber()
首先,如果您希望能够访问实例属性(例如array
),则必须使用new User()
或new User
创建一个新的User
实例,因为它们是使用this.array =...
创建的。 来自 Mozilla Web 文档:
The static keyword defines a static method or property for a class, or a class static initialization block (see the link for more information about this usage). static 方法和 static 属性都不能在 class 的实例上调用。 相反,它们在 class 本身上被调用。
Static 方法通常是实用函数,例如创建或克隆对象的函数,而 static 属性对于缓存、固定配置或您不需要跨实例复制的任何其他数据很有用。
因为getNumber
是在构造函数本身上调用的,所以它无法访问任何实例属性(唯一的一个是this.array
)。 调用new User
时,它会创建this.array
,但仅用于实例,而不是构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.