在React组件构建的过程中,常常会有一类功能需要不同的组件公用的情况。此时就涉及到了抽象的问题。
mixin
所谓Mixin,就是讲一个模块混入到另一个模块之中,或是一个类中。
事实上mixin就类似于多重继承。
封装mixin方法
function mixin(obj, mixins){
const newObj = obj;
newObj.prototype = Object.create(obj.prototype);
for(let prop in mixins){
if(mixins.hasOwnProperty(prop)){
newObj.prototype[prop] = mixins[prop];
}
}
return newObj;
}
const bigMixin = {
fly: ()=>{
console.log('I can fly');}
}