4.1 混入
- 混入用来模拟类的复制行为。
4.1.1 显式混入
- 混入处理的已经不再是类了,因为在JS中不存在类,
Vehicle
和Car
都是对象,进行复制和粘贴。
1 | // 非常简单的mixin(..)例子: |
- 另一种混入模式,先复制然后对Car进行特殊化,可以跳过存在性检查。不如第一种方法常用。
1 | // 可能有重写风险 |
- 寄生继承,既是显式的又是隐式的
1 | // “传统的JS类” Vehicle |
调用new Car()
时会创建一个新对象并绑定到Car的this上,上述代码没有使用这个新对象而是返回了我们自己的car对象,最初创建的这个对象会被丢弃。因此可以不使用new关键字调用Car()。结果是一致的,但是可以避免创建并丢弃多余的对象。
4.1.2 隐式混入
1 | var Something = { |