淺談JavaScript 覆蓋原型以及更改原型
覆蓋原型
//囚犯示例 //1.定義原型對(duì)象 var proto = { sentence : 4, //監(jiān)禁年限 probation: 2 //緩刑年限 }; //2.定義原型對(duì)象的構(gòu)造函數(shù) var Prisoner = function(name, id) { this.name = name; this.id = id; }; //3.將構(gòu)造函數(shù)關(guān)聯(lián)到原型 Prisoner.prototype = proto; //4.實(shí)例化對(duì)象——采用工廠函數(shù)實(shí)例化對(duì)象 var makePrisoner = function(name, id) { //采用工廠函數(shù)實(shí)力化對(duì)象prisoner var prisoner = Object.create( proto ); prisoner.name = name; prisoner.id = id; return prisoner; }; var firstPrisoner = makePrisoner( 'Joe', '12A' ); //firstPrisoner.sentence在firstPrisoner對(duì)象找不到sentence屬性, //所以查找對(duì)象的原型并找到了Both of these output 4 console.log( firstPrisoner.sentence ); console.log( firstPrisoner.__proto__.sentence ); //把對(duì)象的sentence屬性設(shè)置為10 firstPrisoner.sentence = 10; //outputs 10 //確定對(duì)象上的屬性值已設(shè)置為10 console.log( firstPrisoner.sentence ); //但是對(duì)象的原型并沒有變化,值仍然為4 console.log( firstPrisoner.__proto__.sentence ); //為了使獲取到的屬性回到原型的值,將屬性從對(duì)象上刪除 delete firstPrisoner.sentence; //接下來,JavaScript引擎在對(duì)象上不能再找到該屬性, //必須回頭去查找原型鏈,并在原型對(duì)象上找到該屬性 // Both of these output 4 console.log( firstPrisoner.sentence ); console.log( firstPrisoner.__proto__.sentence );
ubuntu 終端node輸出
xxh@xxh-E440:~/workspace$ node t6 4 4 10 4 4 4
那么如果改變了原型對(duì)象的屬性值,會(huì)發(fā)生什么呢?我知道你在思考。
以上這篇淺談JavaScript 覆蓋原型以及更改原型就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)網(wǎng)頁上隨機(jī)產(chǎn)生超鏈接地址的方法
這篇文章主要介紹了JS實(shí)現(xiàn)網(wǎng)頁上隨機(jī)產(chǎn)生超鏈接地址的方法,涉及JavaScript隨機(jī)數(shù)的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11echarts設(shè)置暫無數(shù)據(jù)方法實(shí)例及遇到的問題
Echarts是百度旗下的一款開源的商業(yè)級(jí)數(shù)據(jù)可視化產(chǎn)品,具有豐富的圖表類型,下面這篇文章主要給大家介紹了關(guān)于echarts設(shè)置暫無數(shù)據(jù)方法及遇到的問題的相關(guān)資料,需要的朋友可以參考下2022-12-12javascript算法題 求任意一個(gè)1-9位不重復(fù)的N位數(shù)在該組合中的大小排列序號(hào)
從1--9中選取N個(gè)數(shù)字,組成不重復(fù)的N位數(shù),從小到大進(jìn)行編號(hào),當(dāng)輸入其中任何一個(gè)數(shù)M時(shí),能找出該數(shù)字對(duì)應(yīng)的編號(hào)2012-07-07JS保存、讀取、換行、轉(zhuǎn)Json報(bào)錯(cuò)處理方法
JS保存、讀取 換行 轉(zhuǎn)Json報(bào)錯(cuò)異常信息:Unexpected token ILLEGAL,具體解決方法如下,感性的朋友可以參考下哈2013-06-06Javascript 調(diào)試?yán)?Firebug使用詳解六
有時(shí)候,為了更清楚方便的查看輸出信息,我們可能需要將一些調(diào)試信息進(jìn)行分組輸出,那么可以使用console.group來對(duì)信息進(jìn)行分組,在組信息輸出完成后用console.groupEnd結(jié)束分組。2009-07-07javascript變量作用域使用中常見錯(cuò)誤總結(jié)
剛看了一篇文章對(duì)js作用域的理解又會(huì)上升到一個(gè)新的臺(tái)階,javascript里變量作用域是個(gè)經(jīng)常讓人頭痛抓狂的問題,接下來對(duì)經(jīng)常遇到又容易出錯(cuò)的情況進(jìn)行了簡(jiǎn)單總結(jié),感興趣的各位可以參考下哈2013-03-03