首先明确两个定义:
静态属性:通过构造函数直接访问到的属性。
实例属性:通过new出来的实例,访问到的属性。
接上一个帖子,还是以function和class为例:
function Person(name, age){
this.name = name
this.age = age
}
Person.info = 'aaaa'
const p1 = new Person('王多多', 18)
console.log(p1.info)//undefined
console.log(Person.info)//aaaa
由于info属性是直接挂载给了构造函数,所以是静态属性。
class Animal{
constructor(name, age){
this.name = name;
this.age = age;
}
static info = "eee"
}
const a1 = new Animal('大黄','3')
console.log(a1.info);//undefined
console.log(Animal.info)//eee
在class内部,通过static修饰的属性,就是静态属性,因此info是Animal的静态属性。