Mixin(混入模式)

299 阅读1分钟

使用场景

  1. 类似于装饰器模式,也是用来扩展某个东西的功能的,有点不同的是,Mixin混入模式一般是将已经存在的功能赋予给已有的东西,实现功能的复用。

实现思想

  • js中实现Mixin混入模式非常简单,只需要将相应的功能赋予在原型链上就行了,这样就可以实现功能的复用。

具体代码

场景描述:比如一个人要吃饭,他就需要借用筷子的功能,此时我们就需要将筷子的功能赋予给这个人。

// 筷子对象,它有夹东西的功能
var chopsticks = {
    clipSomething: function () {
        console.log('夹东西');
    }
};
// 某个人,他没有夹东西的功能
var person = {
    name: 'wd'
};
// 使用Mixin混入模式给person对象赋予"夹东西"的功能
// 使用jquery的$.extend()函数实现
person = $.extend(person, chopsticks);
// 使用Object.assign()实现
person = Object.assign(person, chopsticks);

person.clipSomething(); // 输出:夹东西