亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
什么是原型鏈?" >什么是原型鏈?
首頁 web前端 前端問答 es6中什么是原型鏈

es6中什么是原型鏈

Nov 15, 2022 pm 07:28 PM
javascript es6 原型鏈

原型鏈,簡單理解就是原型組成的鏈。當(dāng)訪問一個對象的某個屬性時,會先在這個對象本身屬性上查找,如果沒有找到,則會去它的__proto__隱式原型上查找,即它的構(gòu)造函數(shù)的prototype,如果還沒有找到就會再在構(gòu)造函數(shù)的prototype的__proto__中查找,這樣一層一層向上查找就會形成一個鏈?zhǔn)浇Y(jié)構(gòu),被稱為原型鏈。

es6中什么是原型鏈

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

什么是原型?

在JS中,每個函數(shù)在被創(chuàng)建的時候就會有一個 prototype屬性,這個屬性是一個指針,指向一個對象,而這個對象就是這個函數(shù)的原型對象(也就是原型),它是用來共享所有實例的屬性和方法的地方,所以原型其實就是函數(shù)的伴生體(與生俱來的)

var a = [1, 2, 3, 4, 5];
a.__proto__ === Array.prototype; // true

什么是原型鏈?

原型鏈,簡單理解就是原型組成的鏈。當(dāng)訪問一個對象的某個屬性時,會先在這個對象本身屬性上查找,如果沒有找到,則會去它的__proto__隱式原型上查找,即它的構(gòu)造函數(shù)的prototype,如果還沒有找到就會再在構(gòu)造函數(shù)的prototype的__proto__中查找,這樣一層一層向上查找就會形成一個鏈?zhǔn)浇Y(jié)構(gòu),我們稱為原型鏈。

創(chuàng)建一個構(gòu)造函數(shù):

function Person (name) {
    this.name = name
}
var cheng = new Person('Cheng');
var lin = new Person('Lin');

打印cheng和lin,可以看到兩個對象中都分別存在一個__proto__屬性
在這里插入圖片描述
在這里插入圖片描述
然后發(fā)現(xiàn)

console.log(cheng.__proto__ === lin.__proto__); // true

那么實例對象的這個__proto__屬性到底是什么玩意?

console.log(cheng.__proto__ === Person.prototype); // true
console.log(lin.__proto__ === Person.prototype); // true

小結(jié):實例對象有一個不可枚舉的屬性 proto,這個屬性是一個指針,指向了其構(gòu)造函數(shù)的prototype也就是原型對象,實例可以通過 proto 訪問到構(gòu)造函數(shù)的原型上的方法

簡單來說,實例對象的 __proto__ 指向構(gòu)造函數(shù)的 prototype

2.png

那么,這個構(gòu)造函數(shù)的原型是什么呢?

打印Person.prototype,可以看到也存在一個__proto__屬性
在這里插入圖片描述

console.log(Person.prototype.__proto__ === Object.prototype)

小結(jié):函數(shù)的原型本質(zhì)就是一個普通對象,所以他是來自O(shè)bject的實例,因此,原型對象的 proto 屬性指向Object.prototype。

3.png

再往下找Object.prototype的__proto__是指向哪里呢?

最后發(fā)現(xiàn)是指向null

小結(jié):Javascript中任意數(shù)據(jù)都能沿著自己的原型鏈最終找到Object.prototype

總結(jié):

實例對象的 __proto__ 指向構(gòu)造函數(shù)的 prototype,構(gòu)造函數(shù)的__proto__ 指向Object的 prototype,Object的__proto__ 最終指向null

【推薦學(xué)習(xí):javascript高級教程

以上是es6中什么是原型鏈的詳細(xì)內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驅(qū)動投資研究,做出更明智的決策

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

WebSocket與JavaScript:實現(xiàn)實時監(jiān)控系統(tǒng)的關(guān)鍵技術(shù) WebSocket與JavaScript:實現(xiàn)實時監(jiān)控系統(tǒng)的關(guān)鍵技術(shù) Dec 17, 2023 pm 05:30 PM

WebSocket與JavaScript:實現(xiàn)實時監(jiān)控系統(tǒng)的關(guān)鍵技術(shù)引言:隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,實時監(jiān)控系統(tǒng)在各個領(lǐng)域中得到了廣泛的應(yīng)用。而實現(xiàn)實時監(jiān)控的關(guān)鍵技術(shù)之一就是WebSocket與JavaScript的結(jié)合使用。本文將介紹WebSocket與JavaScript在實時監(jiān)控系統(tǒng)中的應(yīng)用,并給出代碼示例,詳細(xì)解釋其實現(xiàn)原理。一、WebSocket技

JavaScript和WebSocket:打造高效的實時天氣預(yù)報系統(tǒng) JavaScript和WebSocket:打造高效的實時天氣預(yù)報系統(tǒng) Dec 17, 2023 pm 05:13 PM

JavaScript和WebSocket:打造高效的實時天氣預(yù)報系統(tǒng)引言:如今,天氣預(yù)報的準(zhǔn)確性對于日常生活以及決策制定具有重要意義。隨著技術(shù)的發(fā)展,我們可以通過實時獲取天氣數(shù)據(jù)來提供更準(zhǔn)確可靠的天氣預(yù)報。在本文中,我們將學(xué)習(xí)如何使用JavaScript和WebSocket技術(shù),來構(gòu)建一個高效的實時天氣預(yù)報系統(tǒng)。本文將通過具體的代碼示例來展示實現(xiàn)的過程。We

簡易JavaScript教程:獲取HTTP狀態(tài)碼的方法 簡易JavaScript教程:獲取HTTP狀態(tài)碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教程:如何獲取HTTP狀態(tài)碼,需要具體代碼示例前言:在Web開發(fā)中,經(jīng)常會涉及到與服務(wù)器進(jìn)行數(shù)據(jù)交互的場景。在與服務(wù)器進(jìn)行通信時,我們經(jīng)常需要獲取返回的HTTP狀態(tài)碼來判斷操作是否成功,根據(jù)不同的狀態(tài)碼來進(jìn)行相應(yīng)的處理。本篇文章將教你如何使用JavaScript獲取HTTP狀態(tài)碼,并提供一些實用的代碼示例。使用XMLHttpRequest

如何在JavaScript中獲取HTTP狀態(tài)碼的簡單方法 如何在JavaScript中獲取HTTP狀態(tài)碼的簡單方法 Jan 05, 2024 pm 01:37 PM

JavaScript中的HTTP狀態(tài)碼獲取方法簡介:在進(jìn)行前端開發(fā)中,我們常常需要處理與后端接口的交互,而HTTP狀態(tài)碼就是其中非常重要的一部分。了解和獲取HTTP狀態(tài)碼有助于我們更好地處理接口返回的數(shù)據(jù)。本文將介紹使用JavaScript獲取HTTP狀態(tài)碼的方法,并提供具體代碼示例。一、什么是HTTP狀態(tài)碼HTTP狀態(tài)碼是指當(dāng)瀏覽器向服務(wù)器發(fā)起請求時,服務(wù)

JavaScript和WebSocket:打造高性能的實時數(shù)據(jù)可視化 JavaScript和WebSocket:打造高性能的實時數(shù)據(jù)可視化 Dec 17, 2023 pm 04:38 PM

JavaScript和WebSocket:打造高性能的實時數(shù)據(jù)可視化隨著互聯(lián)網(wǎng)的飛速發(fā)展,實時數(shù)據(jù)可視化對于很多領(lǐng)域都變得越來越重要。無論是金融交易、物流運輸,還是工業(yè)監(jiān)控等領(lǐng)域,實時數(shù)據(jù)的可視化都可以幫助我們更好地理解和分析數(shù)據(jù),從而做出更加明智的決策。在Web開發(fā)中,JavaScript和WebSocket技術(shù)結(jié)合起來,可以實現(xiàn)高性能的實時數(shù)據(jù)可視化。W

JavaScript和WebSocket:打造高效的實時搜索引擎 JavaScript和WebSocket:打造高效的實時搜索引擎 Dec 17, 2023 pm 10:13 PM

JavaScript和WebSocket:打造高效的實時搜索引擎引言:隨著互聯(lián)網(wǎng)的發(fā)展,用戶對實時搜索引擎的要求也越來越高。傳統(tǒng)的搜索引擎在進(jìn)行搜索時,用戶需要點擊搜索按鈕后才能得到結(jié)果,這種方式無法滿足用戶對于實時搜索結(jié)果的需求。因此,采用JavaScript和WebSocket技術(shù)來實現(xiàn)實時搜索引擎成為了一個熱門的話題。本文將詳細(xì)介紹使用JavaScri

如何使用WebSocket和JavaScript實現(xiàn)在線電子簽名系統(tǒng) 如何使用WebSocket和JavaScript實現(xiàn)在線電子簽名系統(tǒng) Dec 18, 2023 pm 03:09 PM

如何使用WebSocket和JavaScript實現(xiàn)在線電子簽名系統(tǒng)概述:隨著數(shù)字化時代的到來,電子簽名被廣泛應(yīng)用于各個行業(yè)中,以取代傳統(tǒng)的紙質(zhì)簽名。WebSocket作為一種全雙工通信協(xié)議,可以與服務(wù)器進(jìn)行實時的雙向數(shù)據(jù)傳輸,結(jié)合JavaScript可以實現(xiàn)一個在線電子簽名系統(tǒng)。本文將介紹如何使用WebSocket和JavaScript來開發(fā)一個簡單的在線

如何使用JavaScript和WebSocket實現(xiàn)實時在線投票系統(tǒng) 如何使用JavaScript和WebSocket實現(xiàn)實時在線投票系統(tǒng) Dec 18, 2023 pm 04:27 PM

如何使用JavaScript和WebSocket實現(xiàn)實時在線投票系統(tǒng)引言:隨著互聯(lián)網(wǎng)的快速發(fā)展,實時在線投票系統(tǒng)成為了各類活動和選舉中非常常見的一種形式。使用JavaScript和WebSocket技術(shù)實現(xiàn)實時在線投票系統(tǒng)具有靈活性和易用性的優(yōu)點。本文將詳細(xì)介紹如何使用JavaScript和WebSocket來實現(xiàn)一個簡單的實時在線投票系統(tǒng),并提供相應(yīng)的代碼

See all articles