Bird和Airplane这样的无关对象,继承不起作用。它们都可以飞行,但是Bird不是一种Airplane ,反之亦然。对于不相关的对象,最好使用mixins 。 mixin允许其他对象使用一组函数。 让flyMixin = function(obj){
obj.fly = function(){
console.log(“Flying,wooosh!”);
}
};
flyMixin接受任何对象并为其提供fly方法。 让bird = {这里将
名称:“唐纳德”,
numLegs:2
};
让plane = {
型号:“777”,
numPassengers:524
};
flyMixin(鸟);
flyMixin(平面);
bird和plane传递给flyMixin ,然后将fly函数分配给每个对象。现在bird和plane都可以飞行: bird.fly(); //打印“飞行,嗖!”注意
plane.fly(); //打印“飞行,嗖!”
mixin如何允许相同的fly方法被不相关的对象bird和plane重用。 glideMixin的mixin ,它定义了一个名为glide的方法。然后使用glideMixin让bird和boat都能够滑行。 glideMixin变量,它是一个函数。
testString: 'assert(typeof glideMixin === "function", "Your code should declare a glideMixin variable that is a function.");'
- text: 你的代码应该使用bird对象上的glideMixin来为它提供glide方法。
testString: 'assert(typeof bird.glide === "function", "Your code should use the glideMixin on the bird object to give it the glide method.");'
- text: 你的代码应该使用boat对象上的glideMixin来为它提供glide方法。
testString: 'assert(typeof boat.glide === "function", "Your code should use the glideMixin on the boat object to give it the glide method.");'
```