js修改原型的屬性使用介紹范文

js修改原型的屬性使用介紹范文

ID:46048206

大?。?2.00 KB

頁數(shù):4頁

時(shí)間:2019-11-20

js修改原型的屬性使用介紹范文_第1頁
js修改原型的屬性使用介紹范文_第2頁
js修改原型的屬性使用介紹范文_第3頁
js修改原型的屬性使用介紹范文_第4頁
資源描述:

《js修改原型的屬性使用介紹范文》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、原型(prototype)定義了特定類型的所有實(shí)例都可以訪問的屬性和方法,很多些情況下需要重新對原型中的屬性賦值,下面為大家介紹下如何修改原型在javascript中原型(prototype)定義了特定類型的所有實(shí)例都可以訪問的屬性和方法,很多些情況下需要重新對原型中的屬性賦值,如果方法錯(cuò)誤會(huì)導(dǎo)致一些意想不到的情況(僅僅是對像我這樣的新手奮斗),下面通過測試對這部分知識做一個(gè)簡單的總結(jié)。基本類型定義如下:代碼如下:functionPerson(){}Person,prototype二{construetor:Person,name:person,age:100,friends:[

2、a,b],getName:function(){returnthis,name;}};定義兩個(gè)Person的實(shí)例,修改實(shí)例中的name屬性(該屬性是在prototype中定義的),測試代碼如下代碼如下:varpl二newPerson();varp2=newPerson();document.write(pl.name+br/);//persondocument.write(p2.name+br/);//personpl.name=pl;document.write(pl.name+br/);//pldocument.write(p2.name+br/);//persondocum

3、ent.write(pl.hasOwnProperty(name)+br/);//true屬于對象document.write(p2.hasOwnProperty(name)+br/);//false屬于原型document.write(Object.keys(pl)+br/);//namedocument.write(Object.keys(p2)+br/);//空document.write(Object.getOwnPropertyNames(Person,prototype)+br/);//construetor,name,age,friends,getNamedocum

4、ent.write(Person,prototype.name+br/);//person經(jīng)過測試可以發(fā)現(xiàn)pl.name二pl并不是修改了name的值而是在實(shí)例pl中新增加了一個(gè)name屬性覆蓋了prototype中的name屬性,從后續(xù)的判斷中就可以看出這時(shí)候pl的name屬性已經(jīng)是一個(gè)實(shí)例屬性而不是原型屬性,后面的Object,keys(pl)也可以看出pl這個(gè)實(shí)例中多了一個(gè)name屬性而p2中沒有。在js中所有的傳遞都是值傳遞,這個(gè)值可以是個(gè)指向引用類型的指針,所以等號并不意味著修改這個(gè)引用對象,而是切換了原來的引用關(guān)系,下面再通過代碼說明這個(gè)問題代碼如下:varobj=n

5、ewObject();obj?name二obj;functionchangeObj(o){o.name二changed;o二newObject();o.name=newObj;}changeObj(obj);document?write(obj.name);//changed在changedObj方法中o=newObject()并沒有修改參數(shù)o的值,而是切斷了原來的引用關(guān)系,所以結(jié)果并不是newObj而是changed接下來測試一下修改第一個(gè)例子中prototype屮的friends屬性,這個(gè)屬性是一個(gè)引用類型代碼如下:pl.friends?push(c);document?wr

6、ite(pl.fTiends+br/);//a,b,cdocument?write(p2?friends+br/);//a,b,cpl?friends二[x,y,z];document.write(p1.friends+br/);//x,y,zdocument?write(p2?fTiends+br/);//a,b,cdocument.write(pl.hasOwnProperty(friends)+br/);//true屬于對象document.write(p2.hasOwnProperty(friends)+br/);//false屬于原型document.write(Obj

7、ect.keys(pl)+br/);//name,frienddocument.write(Object.keys(p2)+br/);//空document.write(Object.getOwnPropertyNames(Person,prototype)+br/);//construetor,name,age,friends,getNamedocument.write(Person,prototype.friends+br/);//a,b,c這次測試結(jié)果與第一次的測試基本相同

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。