锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
Object.extend = function(destination, source) {
for(property in source) {
destination[property] = source[property];
}
return destination;
}
//閫氳繃Object綾諱負姣忎釜瀵硅薄娣誨姞鏂規硶extend
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object]);
}
Object.extend鏂規硶寰堝鏄撶悊瑙o紝瀹冩槸Object綾葷殑涓涓潤鎬佹柟娉曪紝鐢ㄤ簬灝嗗弬鏁頒腑source鐨勬墍鏈夊睘鎬ч兘璧嬪煎埌destination瀵硅薄涓紝騫惰繑鍥瀌estination鐨勫紩鐢ㄣ備笅闈㈣В閲婁竴涓婳bject.prototype.extend鐨勫疄鐜幫紝鍥犱負Object鏄墍鏈夊璞$殑鍩虹被錛屾墍浠ヨ繖閲屾槸涓烘墍鏈夌殑瀵硅薄閮芥坊鍔犱竴涓猠xtend鏂規硶錛屽嚱鏁頒綋涓殑璇彞濡備笅錛?br />
Object.extend.apply(this,[this,object]);
榪欎竴鍙ユ槸灝哋bject綾葷殑闈欐佹柟娉曚綔涓哄璞$殑鏂規硶榪愯錛岀涓涓弬鏁皌his鏄寚鍚戝璞″疄渚嬭嚜韜紱絎簩涓弬鏁版槸涓涓暟緇勶紝鍖呮嫭涓や釜鍏冪礌錛氬璞℃湰韜拰浼犺繘鏉ョ殑瀵硅薄鍙傛暟object銆傚嚱鏁板姛鑳芥槸灝嗗弬鏁板璞bject鐨勬墍鏈夊睘鎬у拰鏂規硶璧嬪肩粰璋冪敤璇ユ柟娉曠殑瀵硅薄鑷韓錛屽茍榪斿洖鑷韓鐨勫紩鐢ㄣ傛湁浜嗚繖涓柟娉曪紝涓嬮潰鐪嬬被緇ф壙鐨勫疄鐜幫細
<script language="JavaScript" type="text/javascript">
<!--
//瀹氫箟extend鏂規硶
Object.extend = function(destination, source) {
for (property in source) {
destination[property] = source[property];
}
return destination;
}
Object.prototype.extend = function(object) {
return Object.extend.apply(this, [this, object]);
}
//瀹氫箟class1
function class1(){
//鏋勯犲嚱鏁?br />
}
//瀹氫箟綾籧lass1鐨勬垚鍛?br />
class1.prototype={
method:function(){
alert("class1");
},
method2:function(){
alert("method2");
}
}
//瀹氫箟class2
function class2(){
//鏋勯犲嚱鏁?br />
}
//璁ヽlass2緇ф壙浜巆lass1騫跺畾涔夋柊鎴愬憳
class2.prototype=(new class1()).extend({
method:function(){
alert("class2");
}
});
//鍒涘緩涓や釜瀹炰緥
var obj1=new class1();
var obj2=new class2();
//璇曢獙obj1鍜宱bj2鐨勬柟娉?br />
obj1.method();
obj2.method();
obj1.method2();
obj2.method2();
//-->
</script>
浠庤繍琛岀粨鏋滃彲浠ョ湅鍑猴紝緇ф壙琚紜殑瀹炵幇浜嗭紝鑰屼笖媧劇敓綾葷殑棰濆鎴愬憳涔熷彲浠ヤ互鍒楄〃鐨勫艦寮忓姞浠ュ畾涔?/font>