对象中,在前面加入 static 就变成了静态成员,从两个方面说明,一个语义层面,一个内存层面
1. 语义
实例成员是和实例绑定在一起的。可以通过实例访问到成员。那怎么判断属性是否应该是实例成员呢,就判断是否需要和实例绑定到一起。比如你要创建一个 Person 类,里面有个 name 属性,这个属性必须在创建实例后,通过实例访问才有意义。
静态成员是和实例没关系,直接通过类访问,比如 Person 类里的 count 属性,代表了创建了多少实例。这个 count 不是说创建了实例才有意义,直接通过类访问可以得到当前创建了多少实例。
2. 内存
实例成员要么在他的实例上,要么在他的原型链上。
静态成员在类里,类本身是个函数,不在原型链上。也不实例里。