Maxin Pattern:Add functionality to objects or classes without inheritance
在不使用的继承的情况下为对象或者类添加功能
在JavaScript中混合也是通过原型链实现的。
比如有个Dog类:
class Dog {
constructor(name) {
this.name = name;
}
}
现在我们希望为Dog类添加bark、wagTail、play方法
const dogFunctionality = {
bark: () => console.log("Woof!"),
wagTail: () =>服务器托管网 console.log("Wagging my tail!"),
play: () => console.log("Playing!"),
};
在不直接修改Dog类避免使用继承的情况下,我们可以修改Dog类的原型:
Object.assign(Dog.prototype, dogFunctionality);
这样所有的dog示例都有了bark、wagTail、paly方法:
const dog = new Dog("Daisy");
dog.name; // Daisy
dog.bark(); // Woof!
dog.play(); // Playing!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.n服务器托管网et