国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS-原型及其作用

ysl_unh / 3497人閱讀

摘要:指向一個對象,當函數作為構造函數時,則起到類似的作用。二如何理解原型和原型鏈我們創建的每個函數都有一個屬性,這個屬性是一個指向原型對象指針,原型對象里包含著所有實例共享的屬性和方法。同時原型對象里也有一個指回了其對應的構造函數。

一、如何理解面向對象
面向對象的語言有一個標志,即擁有類的概念,它可以抽象實例對象的公共屬性與方法,基于類可以創建任意多個實例對象,一般具有封裝、繼承、多態的特性!但JS中對象與純面向對象語言中的對象是不同的,ECMA標準定義JS中對象:無序屬性的集合,其屬性可以包含基本值、對象或者函數。可以簡單理解為JS的對象是一組無序的值,其中的屬性或方法都有一個名字,根據這個名字可以訪問相映射的值(值可以是基本值/對象/方法)。

在類語言中,對象基于模板來創建,首先定義一個類作為對現實世界的抽象,然后由類來實例化對象;js(ES5)本身是沒有class類型的,但是每個函數都有一個prototype屬性。prototype指向一個對象,當函數作為構造函數時,prototype則起到類似class的作用。比如用原型模式創建對象,只需要在構造函數的原型上面定義屬性和方法,那么所有實例都可以共享原型對象上的屬性和方法,因為他們內部都有一個__proto__屬性,指向了原型對象。

二、如何理解原型和原型鏈

我們創建的每個函數都有一個prototype屬性,這個屬性是一個指向原型對象指針,原型對象里包含著所有實例共享的屬性和方法。同時原型對象里也有一個constructor指回了其對應的構造函數。
每個對象實例都會在其內部初始化一個__proto__屬性,它是一個指向prototype(原型對象)的指針,當我們訪問一個對象的屬性時,如果這個對象內部不存在這個屬性,那么他就會通過__proto__prototype里找這個屬性,這個prototype又會有自己的__proto__指向自己的原型對象, 于是就這樣一直找下去,形成了原型鏈的概念。

原型鏈實現的是對屬性的查找,一直順著原型鏈查找到Object對象,如果沒查到返回undefined,還有值得注意的一點就是,所有對象里的__proto__都是對原型對象的一個引用,而不是副本,所以當我們修改原型時,與之相關的對象也會繼承這一改變。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/94389.html

相關文章

  • 2018年底前端面試總結

    摘要:主要是整理一些自己還記得的面試題。標注重點的是頻繁出現的,也確實很重要的知識點。總之要深度理解舉一反三邏輯清晰表達流暢。以上,僅供參考。 主要是整理一些自己還記得的面試題。很多題目會根據項目內容提問,現在只記得一些比較常規的問題,后面想起來會做一些補充。標注重點的是頻繁出現的,也確實很重要的知識點。 css 盒子模型:ie與其他瀏覽器的區別,如何改變盒子模型 圖形:實現扇形/圓環/梯...

    妤鋒シ 評論0 收藏0
  • 2018年底前端面試總結

    摘要:主要是整理一些自己還記得的面試題。標注重點的是頻繁出現的,也確實很重要的知識點。總之要深度理解舉一反三邏輯清晰表達流暢。以上,僅供參考。 主要是整理一些自己還記得的面試題。很多題目會根據項目內容提問,現在只記得一些比較常規的問題,后面想起來會做一些補充。標注重點的是頻繁出現的,也確實很重要的知識點。 css 盒子模型:ie與其他瀏覽器的區別,如何改變盒子模型 圖形:實現扇形/圓環/梯...

    youkede 評論0 收藏0
  • 2018年底前端面試總結

    摘要:主要是整理一些自己還記得的面試題。標注重點的是頻繁出現的,也確實很重要的知識點。總之要深度理解舉一反三邏輯清晰表達流暢。以上,僅供參考。 主要是整理一些自己還記得的面試題。很多題目會根據項目內容提問,現在只記得一些比較常規的問題,后面想起來會做一些補充。標注重點的是頻繁出現的,也確實很重要的知識點。 css 盒子模型:ie與其他瀏覽器的區別,如何改變盒子模型 圖形:實現扇形/圓環/梯...

    Anchorer 評論0 收藏0
  • JS創建對象模式及其對象原型鏈探究(三):構造函數模式

    摘要:創建對象與工廠模式的區別沒有顯示地創建對象直接將方法和屬性付給了對象沒有語句構造函數應該始終以一個大寫字母開頭。創建構造函數的實例,必須使用操作符。 構造函數模式 ECMAScript中的構造函數可用來創建特定類型的對象,像Object和Array這樣的原生構造函數。也可以創建自定義的構造函數,從而定義自定義對象類型的屬性和方法。 1.創建對象 function Person(name...

    Martin91 評論0 收藏0
  • JavaScript的數據類型及其檢測

    摘要:值的比較只進行值的比較會進行數據類型的轉換。只要在當前實例的原型鏈上,我們用其檢測出來的結果都是。但檢測與不一樣,還可以處理基本數據類型的檢測。 showImg(https://segmentfault.com/img/remote/1460000016733921); 一、JavaScript有幾種類型的值? Javascript有兩種數據類型,分別是基本數據類型和引用數據類型。其中...

    starsfun 評論0 收藏0

發表評論

0條評論

ysl_unh

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<