Mixin

掺合模式(Mixin)

空扰寡人 提交于 2021-02-17 01:58:39
掺合模式(Mixin) Mixin是JavaScript中用的最普遍的模式,几乎所有流行类库都会有Mixin的实现。 Mixin是掺合,混合,糅合的意思,即可以就任意一个对象的全部或部分属性拷贝到另一个对象上。 从提供的接口来看,有的是对对象的操作,有的是对类的操作。对类的操作又称为掺元类(Mixin classes) 一、掺合对象 (Mixin object) 先看最简单的mixin实现 function mixin(dest, src) { for (var key in src) { dest[key] = src[key] } } 使用下 var person = {name: 'John', age: 29} var obj = {} mixin(obj, person) console.log(obj) // {name: 'John', age: 29} 可看到,已经将person的所有属性拷贝到obj上了。 有个缺点,如果obj上已经有了name: 'Jack',那么会被person覆盖。因此需要加个判断,如果dest上已经存在了,就不拷贝。 function mixin(dest, src) { for (var key in src) { if (!dest[key]) { dest[key] = src[key] } } } var person =