JS中的静态属性,静态方法,和实例属性,实例方法,以及动态属性和动态方法
基础概念
1.类和对象
万物皆是对象,类是抽象的对象
2.类和实例
对象分两种,一个是类对象,一个是实例对象。
3.对象和实例
万物皆对象,实例是new出来的实际对象
JS中的静态属性,静态方法,和实例属性,实例方法,以及动态属性和动态方法
1.静态属性,静态方法,本质上,是类属性,类方法
2.实例属性,实例方法,这两个命名,已经描述了本质。
3.动态属性和动态方法,按道理,对应着,实例属性和实例方法。
参考地址,强力推荐!!!! https://www.jianshu.com/p/d886052ac98c
一些规则
1.实例方法就是只有实例可以调用,静态方法只有构造函数可以调用,原型方法是实例和构造函数都可以调用,是共享的方法。
2.实例属性就是只有实例可以调用,静态属性只有构造函数可以调用,原型属性是实例和构造函数都可以调用,是共享的属性。
ES5通过`类.属性`,和`类.方法`来定义静态属性和静态方法,通过this来定义实例属性和实例方法
ES6通过static来定义静态属性和静态方法(理想情况下,因为ES不支持静态属性,只支持静态方法),通过this来定义实例属性和实例方法。
参考一下 https://www.jianshu.com/p/2a98ba856d74
3.好消息,ES7支持使用static来定义静态属性了。
https://www.cnblogs.com/jianxian/p/12343220.html
JS中如何定义一个类
1.ES5
一般是使用构造函数
2.ES6
推荐使用class
基于以上的概念。进一步深入
一.ES5 的静态属性,静态方法,实例属性,实例方法
二.ES6 的静态属性,静态方法,实例属性,实例方法
明确规定,Class 内部只有静态方法,没有静态属性。好消息,好消息,好消息,ES7支持在内部,写静态属性了。