jsマルチ継承実現
2261 ワード
2.4 ——
JavaScript prototype , , 。
JavaScript , 。
extend 。
//
var extend = function(target, source) {
//
for ( var property in source) {
//
target[property] = source[property];
}
//
return target;
};
PS: extend , , 。 jQuery , extend 。
var book = {
name: "javascript ",
alike: [ "css", "html", "javascript" ]
};
var anotherBook = {
color: "red"
};
extend( anotherBook, book );
console.log( anotherBook.name );
console.log( anotherBook.alike );
anotherBook.alike.push( "ajax" );
anotherBook.name = " ";
console.log( anotherBook.alike );
console.log( anotherBook.name );
console.log( book.alike );
console.log( book.name );
//
var mix = function(){
var i = 1,
len = arguments.length,
target = arguments[ 0 ],
arg;
//
for( ; i < len; i++ ){
//
arg = arguments[ i ];
//
for( var property in arg ){
//
target[ property ] = arg[ property ];
}
};
return target;
}
, , Object , 。
Object.prototype.mix = function(){
var i = 0, //
len = arguments.length, //
arg; //
//
for( ; i < len; i++ ){
//
arg = arguments[ i ];
for( var property in arg ){
//
this[ property ] = arg[ property ];
}
}
}
。 JavaScript !!!