类的特性
类是一种设计模式
- 继承
- 多态
- 多重继承
javascript中模拟类的复制行为
分为两种类型的混入,显示
、隐士
显式混入
定义一个混入函数mixin
,分别接收源对象和要复制到的目标对象
function mixin( sourceObj, targetObj ) {
for ( var key in sourceObj ) {
if (!( key in targetObj )) {
targetObj [key] = sourceObj [key]
}
}
return targetObj
}
当我们需要复制的时候,只需要将两个对象传递进去,并且在目标对象中已有的属性不会被覆盖
隐式混入
直接看下面的代码
var Something = {
cool: function () {
this.greeting = 'hello world';
this.count = this.count ? this.count + 1 : 1
}
}
var Another = {
cool: function () {
Something.cool.call(this) // 注意这里
}
}