摘要:今天和前端組的小伙伴們討論了下的原型鏈,得出了一個(gè)看似很簡(jiǎn)單的結(jié)論。對(duì)于一個(gè)對(duì)象上屬性的查找是遞歸的。給出一段代碼,相信會(huì)很容易理解原型鏈上的對(duì)象查找。從這個(gè)結(jié)果中可以很輕松看出原型鏈查找屬性的順序。
今天和前端組的小伙伴們討論了下js的原型鏈,得出了一個(gè)看似很簡(jiǎn)單的結(jié)論。
對(duì)于一個(gè)對(duì)象上屬性的查找是遞歸的。
查找屬性會(huì)從自身屬性(OwnProperty)找起,如果不存在,就查看prototype中的存在不存在。
prototype是一個(gè)對(duì)象
可以從以上的三點(diǎn)中,看出一個(gè)遞歸關(guān)系。給出一段代碼,相信會(huì)很容易理解原型鏈上的對(duì)象查找。
var A = function () { this.i = 2; } A.prototype.i = 3; var B = function() { this.i = 4; } B.prototype = new A(); var b = new B(); console.log(b.i); //4; delete b.i; console.log(b.i); // 2; delete B.prototype.i; console.log(b.i); //3
從這個(gè)結(jié)果中可以很輕松看出原型鏈查找屬性的順序。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85300.html
摘要:在使用的過(guò)程中,通過(guò)操作符為對(duì)象添加新屬性是很常見的操作。但是,這個(gè)操作的結(jié)果實(shí)際上會(huì)受到原型鏈上的同名屬性影響。通過(guò)它,可以做到操作符做不到的事情,比如為對(duì)象設(shè)置一個(gè)新屬性,即使它的原型鏈上已經(jīng)有一個(gè)的同名屬性。 在使用JavaScript的過(guò)程中,通過(guò)=操作符為對(duì)象添加新屬性是很常見的操作:obj.newProp = value;。但是,這個(gè)操作的結(jié)果實(shí)際上會(huì)受到原型鏈上的同名屬性...
摘要:我們已經(jīng)回答了的構(gòu)造函數(shù)和原型都是誰(shuí)的問題,現(xiàn)在牽扯出來(lái)一個(gè),我們繼續(xù)檢查的構(gòu)造函數(shù)是全局對(duì)象上屬性叫的對(duì)象的原型是個(gè)匿名函數(shù),按照關(guān)于構(gòu)造函數(shù)的約定,它應(yīng)該是構(gòu)造函數(shù)的屬性我們給這個(gè)對(duì)象起個(gè)名字,叫。 我不確定JavaScript語(yǔ)言是否應(yīng)該被稱為Object-Oriented,因?yàn)镺bject Oriented是一組語(yǔ)言特性、編程模式、和設(shè)計(jì)與工程方法的籠統(tǒng)稱謂,沒有一個(gè)詳盡和大家...
摘要:并沒有類繼承模型,而是使用原型對(duì)象進(jìn)行原型式繼承。我們舉例說(shuō)明原型鏈查找機(jī)制當(dāng)訪問一個(gè)對(duì)象的屬性時(shí),會(huì)從對(duì)象本身開始往上遍歷整個(gè)原型鏈,直到找到對(duì)應(yīng)屬性為止。原始類型有以下五種型。此外,試圖查找一個(gè)不存在屬性時(shí)將會(huì)遍歷整個(gè)原型鏈。 Javascript 并沒有類繼承模型,而是使用原型對(duì)象 prototype 進(jìn)行原型式繼承。 盡管人們經(jīng)常將此看做是 Javascript 的一個(gè)缺點(diǎn),然...
摘要:原文相信很多才接觸前端的小伙伴甚至工作幾年的前端小伙伴對(duì)這個(gè)操作符的了解還停留在一知半解的地步,比較模糊。 原文:http://blog.xieyangogo.cn/201... 相信很多才接觸前端的小伙伴甚至工作幾年的前端小伙伴對(duì)new這個(gè)操作符的了解還停留在一知半解的地步,比較模糊。就比如前不久接觸到一個(gè)入職兩年的前端小伙伴,他告訴我new是用來(lái)創(chuàng)建對(duì)象的,無(wú)可厚非,可能很多人都...
摘要:這樣每個(gè)實(shí)例獨(dú)享自己的屬性,并和其他同類型的實(shí)例共享方法構(gòu)造函數(shù)原型以上這種方式定義的類型,可以通過(guò)來(lái)判斷一個(gè)實(shí)例是否是類型的實(shí)際上是通過(guò)實(shí)例的原型鏈來(lái)判斷一個(gè)對(duì)象是否某個(gè)類型的實(shí)例的,具體的細(xì)節(jié)后面會(huì)詳細(xì)介紹。 JavaScript面向?qū)ο缶幊? 如何定義自定義類型 首先需要明確,JavaScript并不是傳統(tǒng)意義上的OO語(yǔ)言,它并沒有class的概念, 而是包含了另一套異常強(qiáng)大的...
閱讀 2612·2021-11-16 11:40
閱讀 3409·2021-11-08 13:26
閱讀 871·2021-10-28 09:32
閱讀 3530·2021-09-13 10:26
閱讀 803·2019-08-30 15:55
閱讀 777·2019-08-30 15:44
閱讀 1908·2019-08-30 15:44
閱讀 1756·2019-08-30 13:48