1銆佽嚜瀹氫箟瀵硅薄
a. 宸ュ巶妯″紡
function Person(name,age){
var person = new Object();
person.name = name;
person.age=age;
person.say=function(){
alert(person.name+" "+person.age);
}
return person;
}
var person1 = Person("xcp",23);
var person2 = Person("lxm",24);
person1.say();
person2.say();
//娌℃湁瑙e喅瀵硅薄璇嗗埆鐨勯棶棰橈紙鍗蟲庝箞鐭ラ亾瀵硅薄鐨勭被鍨嬶級
b. 鏋勯犲嚱鏁版ā寮?/p>
function Person(name,age){
this.name = name;
this.age = age;
this.say = function(){
alert(this.name+" "+this.age);
}
}
var person1 = new Person("xcp",23);
var person2 = new Person("lxm",24);
person1.say();
person2.say();
//鐩存帴灝嗗睘鎬ч檮鍊間簬this錛涘茍涓旀病鏈夋樉紺虹殑鍒涘緩鍜岃繑鍥炲璞★紱蹇呴』鐢╪ew鏉ュ垱寤哄璞?br />alert(person1 constructor Person);//true
alert(person1 instanceof Person); //true
->鍒涘緩瀵硅薄緇忓巻浠ヤ笅姝ラ錛?br /> >鍒涘緩涓涓柊瀵硅薄
>灝嗘瀯閫犲嚱鏁扮殑浣滅敤璧嬩簣鏂板璞?鍥犳this灝辨寚鍚戜簡鏂板璞?
>鎵ц鏋勯犲嚱鏁伴噷闈㈢殑浠g爜錛堟坊鍔犲睘鎬э級
>榪斿洖鏂板璞?br /> ->鏋勯犲嚱鏁扮殑闂
>浣跨敤鏋勯犲嚱鏁扮殑涓昏闂錛屽氨鏄瘡涓柟娉曢兘瑕佸湪姣忎釜瀹炰緥涓婇噸鏂?/strong>鍒涘緩涓閬嶃備緥濡傛垜浠笂闈㈢殑alert(person1.say==person2.say) //false
鍒涘緩涓や釜鍚屾牱鍔熻兘鐨凢unction()鏄畬鍏ㄦ病鏈夊繀瑕佺殑錛涘喌涓旀湁this瀵硅薄鍦紝鏍規湰涓嶇敤鍦ㄦ墽琛屼唬鐮佸墠灝辨妸鍑芥暟緇戝畾鍒扮壒瀹氬璞′笂闈€傚洜浜涳紝澶у彲浠ュ儚浠ヤ笅闈㈢殑浠g爜錛岄氳繃鎶婂嚱鏁板畾涔夎漿縐誨埌鏋勯犲嚱鏁板閮ㄨВ鍐寵繖涓棶棰橈細
function Person(name,age){
this.name = name;
this.age = age;
this.say = sayFunction(this.name,this.age);
}
function sayFunction(name,age){
alert(name+" "+age);
}
//榪欐牱sayFunction灝卞彧浼氬垱寤轟竴嬈′簡 //鍗籌細alert(person1.say==person2.say) //true;
浣嗛棶棰樹篃鏉ヤ簡錛屽鏋滄湁寰堝涓柟娉曪紝灝辮鍒涘緩寰堝鏂規硶錛岃繖鏍鋒棤璁哄彲璇繪э紝閫傜敤鎬ч兘涓嶆槸寰堝ソ
c. 鍘熷瀷妯″紡
>鐞嗚В錛氭垜浠垱寤虹殑姣忎竴涓璞★紝閮芥湁涓涓猵rototype灞炴э紝榪欎釜灞炴ф槸涓涓璞★紝閭d箞榪欎釜瀵硅薄鐨勪綔鐢ㄦ槸浠涔堝憿錛熸墍鏈塸rototype灞炴ч兘浼氳嚜鍔ㄨ幏寰椾竴涓猚onstructor(鏋勯犲嚱鏁?錛岃繖涓睘鎬ф皯鍖呭惈涓涓寚鍚憄rototype灞炴у湪鎵鍑芥暟鐨勬寚閽堛侾erson.prototype.constructor鎸囧悜Person銆傝岄氳繃榪欎釜鏋勯犲嚱鏁幫紝鎴戜滑榪樺彲浠ョ戶鎵夸負鍘熷瀷娣誨姞鍏朵粬灞炴у拰鏂規硶銆傚鍥撅細
.Person瀵硅薄鐨刾rototype灞炴ф寚鍚慞erson鍘熺悊瀵硅薄
.Person鍘熺悊瀵硅薄鐨勬瀯閫犳柟娉曟寚鍚慞erson瀵硅薄
.Person瀹炰緥璋冪敤灞炴у拰鏂規硶鐨勯『搴忥細鍏堟煡鎵綪erson瀵硅薄鏄惁鍏鋒湁姝ゅ睘鎬у拰鏂規硶錛屽鏋淧erson瀵硅薄鍏鋒湁鍒欒繑鍥烇紝濡傛灉娌℃湁鍒欏厛鏌ヨPerson鐨勫師鍨嬪鍍忋傛帹鍑猴細濡傛灉瀵硅薄鏈韓鍜屽師鍨嬪璞″悓鏃跺叿鏈夋煇涓嚱鏁板拰鏂規硶錛屼互瀵硅薄鏈韓鐨勫睘鎬у拰鏂規硶涓哄噯銆備粠榪欎釜鍙互浣撶幇鍑哄涓璞″叡浜師鍨嬫墍淇濆瓨鐨?/strong>灞炴у拰鏂規硶錛屼互闄嶄綆鍐呭瓨寮娑堛備絾鏈夌殑鏃跺欐垜浠渶瑕佺敤鍘熺悊瀵硅薄鐨勫睘鎬у睘鎬у拰鏂規硶鍘昏鐩栧師鏈夊璞$殑灞炴х殑鏂規硶錛岃繖鏃舵垜浠噰鐢?strong>鍒犻櫎鍘熸湁瀵硅薄鐨勫睘鎬у拰鏂規硶錛歞elete Person.name(鍒犻櫎鍘熸湁瀵硅薄鐨刵ame灞炴?.鍙互浣跨敤hasOwnProperty()鍜宨sPrototypeof();

>鍘熷瀷涓巌n鎿嶄綔絎?br /> .鏈変袱縐嶅彲鑳戒嬌鐢╥n鎿嶄綔錛氬崟鐙嬌鐢?"name" in person1)鍜屽湪for..in閲岄潰銆傚崟鐙嬌鐢╥n鐨勬椂鍊欏璞¤兘澶熻繑鍥炵粰瀹氬睘鎬ф椂榪斿洖true(瀹炰緥鍜屽師鍨?
>鏇村姞綆鍗曠殑鍘熷瀷璇硶
function Person(){}
Person.prototype={
name:'age',
age:'23',
say:function(){
alert(this.name+" "+this.age);
}
}
//榪欐牱鍐欎笅鏉ュ氨鐩稿綋浜?strong>閲嶅啓浜嗗璞$殑prototype瀵硅薄錛岄偅鍘熷瀷瀵硅薄閲岄潰鐨刢onstructor灞炴у氨娌℃湁浜?/strong>.浣嗗鏋滄垜瑕佸緱鍒癱onstructor灞炴ф庝箞鍔炲憿錛?br /> Person.prototype={
constructor:Person,//constructor=this,
name:'age',
age:'23',
say:function(){
alert(this.name+" "+this.age);
}
}
>鍘熷瀷涓殑鍔ㄦ佹?nbsp;
銆銆銆銆.鐢變簬鍘熷瀷涓煡鎵炬鐨勮繃紼嬫槸涓嬈℃х殑錛屽洜姝ゆ垜浠鍘熷瀷瀵硅薄鎵鍋氱殑鎿嶄綔浼氱珛鍒誨弽鏄犲嚭鏉ワ紝濡?br /> function Person(){
}
Person p = new Person();
Person.prototype.say=function(){
alert("hi");
}
p.say(); //hi;榪欐牱灝卞彲浠ョ珛鍒諱綋鐜板嚭鏉?br />
//鍐嶇湅鐪嬩笅闈㈢殑渚嬪瓙
function Person(){}
Person p = new Person();
Person.prototype={
say:function(){
alert("hi");
}
}
p.say(); //error;
//榪欓噷涓轟粈涔堝氨鍑洪敊浜嗗憿錛屼笂涓涓緥瀛愪笉鏄ソ濂界殑鍚?/strong>錛熷洜涓虹涓涓緥瀛愶紝鍙槸鍦╬rototype鍘熷瀷瀵硅薄閲岄潰娣誨姞浜嗕竴涓睘鎬э紝鎴戜滑鍦ㄨ皟鐢╯ay鐨勬椂鍊欎粬浼氭煡鎵懼璞℃湰韜拰鍘熷瀷瀵硅薄騫朵笖鏄竴嬈℃煡璇紙鎵浠ョ殑浠g爜榪愯瀹屾瘯錛夛紝鎵浠ュ彲浠ユ甯哥殑鍒板師鍨嬪璞¢噷闈㈠彇鍑烘潵錛涘彲鏄悗闈竴涓柟娉曞憿錛屽0鏄庡璞浠栫殑鏃跺欎粬浼氭壘鍒癬proto_鎸囬拡鎸囧悜鍘熷瀷瀵硅薄錛涜屾垜鐢≒erson.prototype涔熼噸鏋勮繖涓師鍨嬪璞★紝灝辯浉褰撲簬鍒囨柇浜哻onstructor涓庢槸鍒濆鍘熷瀷涔嬮棿鐨勮繛鎺ュ叧緋伙紝鎵鏈塸鐨勪換浣曢潪鏈韓灞炴ч兘浼氬嚭閿欙紒
>鍘熺敓鎬佸璞℃ā鍨?/span>
.鍘熷瀷綾誨瀷涓嶄粎浣撶幇鍦ㄨ嚜瀹氫箟瀵硅薄妯″瀷錛屽寘鎷師鐢熺殑寮曠敤綾誨瀷閮芥槸閲囩敤鐨勮繖縐嶆ā寮忥紝鎵浠ユ垜浠彲浠ヤ慨鏀瑰紩鐢ㄧ被鍨嬫彁渚涚殑鏂規硶鍜屽睘鎬с?/span>
String.prototype.trim=function(text){...} //鎴戜滑灝嗚窡String瀵硅薄娣誨姞浜嗕竴涓猼rim()鏂規硶錛?/span>
>鍘熷瀷瀵硅薄鐨勯棶棰?/span>
.鍘熷瀷瀵硅薄鐪佺暐浜嗕負鏋勯犲嚱鏁頒紶浣庡弬鏁拌繖涓緇嗚妭錛岀粨鏋滄墍浠ョ殑瀹炰緥瀵硅薄鍙栧緱鐨勫疄渚嬪奸兘鏄竴鏍風殑錛屾墍浠?/span>鍘熷瀷瀵硅薄鏈澶ч棶棰樺氨鏄敱鏈韓鏈川瀵兼垚鐨?/strong>銆?/span>
function Person(){}
Person p = new Person();
Person.prototype={
say:function(){
alert("hi");
}
}
p.say();
Person p1 = new Person();
Person p2 = new Person();
alert(p1.say==p2.say);//true
//鎵浠ユ帴涓嬫潵鎴戜滑灝辨槸鏉?/span> 瑙e喅鎬庝箞鍚堢悊鍏變韓,鍗沖悎鐞嗕嬌鐢╬rototype錛?/span>
>緇勫悎浣跨敤鏋勯犲嚱鏁版ā寮忓拰鍘熷瀷妯″瀷(鏈甯歌鐨勬柟娉?
.鏋勯犲嚱鏁版ā寮忕敤浜庡畾涔夛細瀹炰緥灞炴?鍙互浼犻掑涓弬鏁頒互紜繚蹇呰鎬?
鍘熷瀷妯″紡鐢ㄤ簬瀹氫箟錛氬叡浜殑灞炴у拰鏂規硶(榪欐牱鍗充繚璇佷簡瀹夊叏錛屼篃淇濊瘉浜嗘渶澶х殑鑺傜害鍐呭瓨)
渚嬶細function Person(name,age){
this.name=name;
this.age = age;
this.friend=["zhangsan","lisi","wangmazi"];
}
Person.prototype={
constructor:Person,
say:function(){
alert(this.name+" "+this.age);
}
}
Person p1 = new Person("xcp","23");
Person p2 = new Person("lxm","25");
alert(p1.friends==p2.friends);//false;
alert(p1.say==p2.say);//true;
.鍔ㄦ佸師鍨嬫ā鍨?br /> function Person(name,age){
this.name=name;
this.age = age;
this.friend=["zhangsan","lisi","wangmazi"];
if(typeof this.say !="function"){
Person.prototype.say:function(){
alert(this.name+" "+this.age);
}
//鍐嶄竴嬈″己璋冭繖涓嶈兘鍐欐垚
Person.prototype={...}
}
}
>瀵勭敓鏋勯犲嚱鏁版ā鍨?br /> .鍦ㄥ伐鍘傛ā寮忎笂鍔犱笂鍙傛暟
function Person(name,age){
var o = new Object();
o.name=name;
o.age = age;
o.say=function(){
alert(this.name+" "+this.age);
}
return o;
}
2.緇ф壙
涓鑸墍鏈夌殑OO閮芥敮鎸佹帴鍙g戶鎵垮拰瀹炵幇緇ф壙錛岃孍CMAScript鍑?span style="color: #000000">鏁版病鏈?/span>絳炬槑鐨勮璇濓紙絀哄嚱鏁版爣蹇楁垨鑰呰鎺ュ彛鐨勫0鏄庢柟娉曪級錛屾墍浠ュ彧鏈夊疄鐜扮戶鎵匡紝鑰屽疄鐜扮戶鎵夸富瑕佹槸閫氳繃鍘熷瀷瀵硅薄鏉ュ疄鐜頒簡銆?nbsp;
>鍘熷瀷閾?/strong>(閲嶈鎬濇兂)
. 綆鍗曞洖欏句竴涓嬫瀯閫犲嚱鏁幫紝鍘熷瀷鍜屽疄渚嬬殑鍏崇郴
鏋勯犲嚱鏁扮殑prototype灞炴?鎸囬拡)銆->銆鍘熷瀷鍦板潃
鍘熷瀷鐨刢onstrutcotr灞炴?鎸囬拡) -> 鏋勯犲嚱鏁板湴鍧
瀹炰緥鐨刜proto_灞炴?鍐呴儴鎸囬拡) -> 鍘熷瀷瀵硅薄
.鍘熷瀷閾劇殑鎬濇兂
鎴戜滑灝嗕竴涓師鍨嬪璞$殑鎸囬拡鎸囧悜鍙︿竴涓瀯閫犲嚱鏁般傚姝ゅ眰灞傞掕繘錛屽氨瀹炵幇浜嗗疄渚嬪拰鍘熷瀷鐨勯摼鏉?br /> function SuperType(){
this.property = true;
}
SuperType.prototype.getSuperValue=function(){
return this.property;
}
function Subtype(){
this.subproperty = false;
}
SubType.prototype = new SuperType(); //瀛愮被鐨勫師鍨嬪璞℃寚鍚戙鐢熸垚鐨勮秴綾葷殑瀛愮被錛堟墍浠ユ湁涓涓猒proto_鎸囬拡鎸囧悜瓚呯被鐨勯潰鍨嬪璞★級
SubType.prototype.getSubValue=function(){
return this.subproperty;
}
Subtype instance = new Subtype();
instance.getSuperValue();
鍒嗘瀽錛?br />
.濡傛灉鎴戜滑璋冪敤subType.getSuperValue()緇忚繃鐨勬楠ゆ湁錛?錛夋悳绱㈠疄渚嬫湰韜?2錛夋悳绱ubType.prototype 3)鎼滅儲SuperType.prototype 4)鎵鏈夌殑綾婚兘鏄疄鐜癘bject錛屾墍浠ュ鏋滃墠闈㈡病鏈夋壘鍒扮殑璇濓紝灝辮繕瑕佹悳绱bject.prototype;鎵浠ョ湡姝g殑鍘熷瀷閾懼簲璇ユ槸錛?br /> 
//鍐嶅埌榪欐潵榪欐潵寮鴻皟涓涓嬶紝涓嶆槸鍘熷瀷瀵硅薄鐨刢onstructor琚噸鍐欎簡錛岃屼笖_proto_鎸囬拡琚噸鍐欎簡銆?br />
. 涓ょ鏂規硶鏉ョ‘瀹氬疄鐜拌窡鍘熺悊涔嬮棿鐨勫叧緋?br /> //鏄惁鏄寚瀹氱被鍨嬬殑瀹炵幇
alert(instance instanceof Object)//true;
alert(instance instanceof SuperType);//true;
alert(instance instanceof SubType);//true;
alert(instance instanceof Data); //false;
//鎸囧畾綾誨瀷鐨勫師鍨嬪璞℃槸鍚︽淳鐢熶簡姝ゅ疄渚?br /> alert(Object.prototype.isPrototype(instance));//true;
alert(SuperType.prototype.isPrototype(instance));//true;
alert(SubType.prototype.isProtoType(instance));//true
.閲嶅啓瓚呯被鏂規硶
鍦⊿ubType.prototype = new SuperType(); 鍚庨潰娣誨姞濡備笅錛?br /> //閲嶅啓瓚呯被鏂規硶
SubType.prototype.getSuperValue=function(){
return false;
}
//涓嶈兘鍐欐垚榪欐牱
SubType.prototype=new Supertype();
SubType.prototype={
getSuperValue=function(){
return false;
}
} //褰撲竴浣跨敤榪欎竴鍙ヨ瘽鏃訛紝涓婁竴鍙ヨ瘽灝辯珛鍒誨疄鏁堜簡錛屼負浠涔堝憿錛熷墠闈㈠凡緇忚榪囦竴榪欐牱灝卞垏鏂簡SubType涓嶴uperType.prototype鐨勯摼鏉?br />
.鍘熷瀷閾劇殑闂
鏈涓昏鐨勯棶棰樺氨鏄寘鍚紩鐢ㄧ被鍨嬬被鍨嬬殑鍊?鎹竴鍙ュ氨鏄?strong style="color: red">璁塊棶瀹夊叏鎬ч棶棰?/strong>錛涙庝箞璇存潵鐫錛熷墠闈粙緇嶅寘鍚紩鐢ㄧ被鍨嬪肩殑鍘熷瀷灞炴ф皯浼氳鎵鏈夊疄渚嬪叡浜紱鑰岃繖涔熸鏄負浠涔堣鍦ㄦ瀯閫犲嚱鏁頒腑錛岃屼笉鏄湪鍘熷瀷瀵硅薄涓畾涔夊睘鎬х殑鍘熷洜銆備絾鎴戜滑閫氳繃鍘熷瀷鏉ュ疄鐜扮戶鎵挎椂錛屽師鍨嬪疄闄呬笂浼氬彉鎴愬彟涓涓被鍨嬬殑瀹炰緥錛屼簬鏄紝鍘熷厛鐨勫疄渚嬪睘鎬у拰鍘熷瀷瀵硅薄閲岄潰鎵鏈夌殑灞炴у拰鏂規硶欏哄埄鎴愮珷鍦板彉鎴愪簡鐜板湪鐨勫師鍨嬪睘鎬т簡錛屼粠鑰屽彲浠ュ皢灞炴у伐浜繖灝辯牬鍧忎簡鍘熸湁鐨勫畨鍏ㄦт簡銆?br />
>鍊熺敤鏋勯犲嚱鏁?/strong>錛堜篃鍙吉閫犲璞″拰緇忓吀緇ф壙->甯哥敤鏂瑰紡錛?br /> .鏃犲弬鏁扮増
function SuperType(){
colors:["red","blue","green"];
}
function SubType(){
//瀹炵幇緇ф壙SuperType,涓轟粈涔堝憿錛屽洜涓哄湪瀛愮被鏋勯犲嚱鏁拌皟鐢ㄧ埗綾繪瀯閫犲嚱鏁伴噷闈㈢殑call鏂規硶
SuperType.call(this);
}
var instance1 = new SubType();
instance1.colors.push("block");
alert(instance1.colors); //"red","blue","green","block";
var instance2 = new SubType();
alert(instance2.colors); //"red","blue","green"
.鏈夊弬鏁扮増
function SuperType(name){
this.name = name;
}
function SubType(){
//緇ф壙浜哠uperType,鍚屾椂浼犻掍簡鍙傛暟
SuperType.call(this,"xcp");
//瀹炰緥灞炴?br /> this.age = 23;
}
var instance = new SubType();
alert(instance.name); //xcp
alert(instance.age); //23
.鍊熺敤鏋勯犲嚱鏁扮殑闂
濡傛灉浠呬粎鏄熺敤鏋勯犲嚱鏁幫紝閭d箞涔熷皢鏃犳硶閬垮厤鏋勯犲嚱鏁版ā寮忓瓨鍦ㄧ殑闂錛嶆柟娉曢兘鍦ㄦ瀯閫犲嚱鏁頒腑瀹氫箟錛岃繖鏍蜂簺鍑芥暟澶嶇敤灝辨棤浠庤皥璧蜂簡銆?br />
>緇勫悎緇ф壙(涔熺О浼粡鍏哥戶鎵?,鎸囩殑鏄皢鍘熷瀷閾懼拰鍊熺敤鏋勯犲嚱鏁扮殑鎶鏈粨鍚堝湪涓璧鋒潵錛屼粠鑰屽彂鎸ヨ呰繖瀹呯殑涓縐嶇戶鎵挎ā寮?br /> .瀹炰緥(綺懼吀瀹炰緥)
function SuperType(name){
this.name = name;
this.colors = ["red","blue","green"];
}
SuperType.prototype.sayName=function(){
alret(this.name);
}
function SubType(name,age){
//緇ф壙灞炴?br /> SuperType.call(this,name);
//娣誨姞鏂板睘鎬?br /> this.age = age;
}
//緇ф壙鍘熷瀷閲岄潰鐨勫睘鎬у拰鏂規硶
SubType.prototype = new SuperType();
//娣誨姞鏂版柟娉?br /> SubType.prototype.sayAge = function(){
alert(this.age);
}
var instance1 = new SubType("xcp",23);
instance1.colors.push("black");
alert(instance1.colors); //red,blue,green,black
instance1.sayName();//xcp;
instance1.sayAge();//23;
var instance2 = new SubType("lxm",25);
alert(instance2.colors); //red,blue,green
instance2.sayName();//lxm
instance2.sayAge(); //25
//緇勫悎緇ф壙灝遍伩鍏嶄簡鍓嶉潰鐨勫師鍨嬮摼錛堢埗綾繪墍鏈夌殑灞炴у拰鏂規硶鍧囦綔鐢ㄥ瓙綾葷殑鍘熷瀷瀵硅薄鐨勫睘鎬у拰鏂規硶錛屾墍浠ュ氨瀛樺湪鏁版嵁瀹夊叏闂浜嗭級鍜屽熺敤鏋勯犲嚱鏁扮殑緙洪櫡錛堟棤鍏變韓灞炴у拰鏂規硶鏈哄埗錛夛紱鎴愪負Javascript涓渶甯哥敤鐨勭戶鎵挎ā寮忋傝屼笖錛宨nstanceof鍜宨sPrototypeOf()涔熻兘澶熺敤浜庤瘑鍒熀浜庣粍鍚堢戶鎵垮垱寤虹殑瀵硅薄銆?br />
>褰撶劧榪樺寘鎷細鍘熷瀷寮忕戶鎵褲佸瘎鐢熷紡緇ф壙絳?br />
3.鎬葷粨
>鍒涘緩javascript瀵硅薄鐨勬柟寮?br /> .鏂規硶錛?br /> 鏋勯犳柟娉曞紡<鎺ユ敹鍙傛暟浼犲煎疄渚嬪睘鎬?gt;+鍘熷瀷寮?lt;鎶藉彇鍏叡鍏變韓鐨勬柟寮?gt;
.瀹炰緥錛?br /> function Person(name,age){
this.name=name;
this.age = age;
this.friend=["zhangsan","lisi","wangmazi"];
}
Person.prototype={ //浣跨敤鏈綆瀵硅薄瀹屾垚
constructor:Person,
say:function(){
alert(this.name+" "+this.age);
}
}
Person p1 = new Person("xcp","23");
Person p2 = new Person("lxm","25");
alert(p1.friends==p2.friends);//false;
alert(p1.say==p2.say);//true;
>緇ф壙瓚呯被鐨勬柟娉?br /> .鏂規硶
鍊熺敤鏋勯犲嚱鏁板紡<澶嶇敤瓚呯被鐨勫疄渚嬪彉閲忥紝琛ㄧず涓嶅悓瀹炰緥寰楀埌涓嶅彉閲忎笉鍚?gt;+鍘熷瀷閾?lt;澶嶇敤瓚呯被鐨勫師鍨嬪璞★紝鎰忔濆氨鏄瓙綾葷殑_proto_鎸囬拡鎸囧悓瓚呯被鐨勫師鍨嬪璞?gt;
.瀹炰緥
function SuperType(name){
this.name = name;
this.colors = ["red","blue","green"];
}
SuperType.prototype.sayName=function(){
alret(this.name);
}
function SubType(name,age){
//緇ф壙灞炴?br /> SuperType.call(this,name);
//娣誨姞鏂板睘鎬?br /> this.age = age;
}
//緇ф壙鍘熷瀷閲岄潰鐨勫睘鎬у拰鏂規硶
SubType.prototype = new SuperType();
//娣誨姞鏂版柟娉?br /> SubType.prototype.sayAge = function(){
alert(this.age);
}
var instance1 = new SubType("xcp",23);
instance1.colors.push("black");
alert(instance1.colors); //red,blue,green,black
instance1.sayName();//xcp;
instance1.sayAge();//23;
var instance2 = new SubType("lxm",25);
alert(instance2.colors); //red,blue,green
instance2.sayName();//lxm
instance2.sayAge(); //25

]]>