, , , Mix-in.
:, , javascript, jQuery, , , mixins.
, :
var Person = function(name){
this.name=name;
this.sayhello = function(){
console.log(this.name + ' says hello');
};
};
, :
var extend = function(destination, source) {
for (var property in source)
destination[property] = source[property];
return destination;
};
, , , , , , :
var DanceMixin = {
dance: function(){
console.log(this.name + ' is dancing!');
}
};
var SingMixin = {
sing: function(){
console.log(this.name + ' is singing!');
}
};
var bob = new Person('bob');
extend(bob, SingMixin);
extend(bob, DanceMixin);
bob.sing();
bob.dance();
bob.sayhello();
, . Person, Person.
, :
var Animal = function(name){
this.name = name;
this.roar = function(){
console.log(this.name + ' is roaring!');
};
};
, , . DanceMixin Animal, :
var mixin = function(dest, src){
for (var property in src)
dest.prototype[property] = src[property];
return dest;
}
mixin(Animal, DanceMixin);
, ...
var lion = new Animal('lion');
lion.dance()
, MooTools , . Implements MooTools mixins.