方式 |
缺点 |
优点 |
基于已有对象扩充属性和方法 |
不可重用,没有约束 |
无 |
工厂方法 |
检测不出是什么的实例 |
简单封装,可以传参 |
构造方法 |
每创建一个对象就有开辟存放方法的空间 |
能通过instanceof检测出实例类型,可以传参 |
原型方式 |
不能传参,属性共享 |
方法区共享 |
构造方法+原型 |
属性和方法分开放置 |
能传参,属性放构造方法中,方法放原型中 |
动态原型 |
推荐使用 |