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

資訊專欄INFORMATION COLUMN

理解javascript中的原型

gaara / 3004人閱讀

摘要:構(gòu)造函數(shù)和原型同時(shí)存在同一方法,結(jié)果會(huì)是哪個(gè)呢構(gòu)造函數(shù)的方法優(yōu)先會(huì)先在構(gòu)造函數(shù)中找,如果沒有在去查找原型,如果原型還沒有那返回原型和實(shí)例不是復(fù)制關(guān)系,而是協(xié)同關(guān)系,附加到了新創(chuàng)建的對(duì)象上未完待續(xù)

已經(jīng)熟悉Javascript的開發(fā)者可能會(huì)認(rèn)為原型和對(duì)象的關(guān)系很親密,但是這全都與函數(shù)有關(guān),原型雖然是定義對(duì)象的一種很方便的方式,但是它的本質(zhì)依然是函數(shù)特性。
作為Javascript中的一個(gè)方便方式,使用原型所定義的屬性會(huì)變成實(shí)例化對(duì)象的屬性,從而作為復(fù)雜對(duì)象創(chuàng)建的概覽。
所有函數(shù)在初始化的時(shí)候都有一個(gè)prototype屬性,該屬性的初始值是一個(gè)空對(duì)象,只有函數(shù)在作為構(gòu)造器(constructor)的時(shí)候,prototype屬性才會(huì)返回更大的作用,使用new關(guān)鍵字調(diào)用一個(gè)函數(shù),使得該函數(shù)可以作為構(gòu)造器進(jìn)行實(shí)例化,并產(chǎn)生一個(gè)新的空對(duì)象實(shí)例作為其上下文
上面看不懂沒關(guān)系下面我們就用幾個(gè)例子來理解一下原型

對(duì)象實(shí)例化

創(chuàng)建新對(duì)象最簡(jiǎn)單的方法只有一條語句

var o = {};//并可以為他添加一些屬性
o.name = "Li li";//添加name屬性
o.age = "28";    //添加age屬性
o.skill = "english";//添加skill屬性
//也可以如下面這樣寫
var o {
o.name = "Li li";
o.age = "28";
o.skill = "english";
}

上面我們演示了如何創(chuàng)建一個(gè)對(duì)象并為之添加三個(gè)屬性,那么如果我們要?jiǎng)?chuàng)建多個(gè)相同類型的對(duì)象實(shí)例,分別對(duì)屬性進(jìn)行賦值,不僅代碼冗長(zhǎng),還非常容易出錯(cuò)。此處下面在說

原型作為對(duì)象概覽

我們先開看代碼

function Person () {}
Person.prototype.dance = function () {
 return true
}
var person = new Person;
console.log(person.dance())//true
  

讓我們看看發(fā)生了什么? 使用new操作符將其作為構(gòu)造器進(jìn)行調(diào)用,構(gòu)造函數(shù)被調(diào)用,并且新創(chuàng)建了一個(gè)對(duì)象也就是他的實(shí)例,新創(chuàng)建的函數(shù)成了構(gòu)造函數(shù)的上下文,new操作符返回的結(jié)果就是對(duì)新創(chuàng)建的對(duì)象的引用

實(shí)例屬性

使用new操作符將函數(shù)作為構(gòu)造器進(jìn)行調(diào)用的時(shí)候,其上下文被定義新對(duì)象實(shí)例,意味著除了通過原型給附加屬性的形式意外,我們還可以在構(gòu)造函數(shù)內(nèi)通過this參數(shù)初始化值。

function Person () {
 this.swing = false;//false
 this.isSwing = function()
 {return !this.swing}//true
Person.prototype .isSwing = function(){
return this.swing
}
var person = new Person;
console.log(person.swing)
//構(gòu)造函數(shù)和原型同時(shí)存在同一方法,結(jié)果會(huì)是哪個(gè)呢?構(gòu)造函數(shù)的方法優(yōu)先!person會(huì)先在構(gòu)造函數(shù)中找swing,如果沒有在去查找原型,如果原型還沒有那返回undifined
原型和實(shí)例不是復(fù)制關(guān)系,而是協(xié)同關(guān)系!,附加到了新創(chuàng)建的對(duì)象上

未完待續(xù)!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/86741.html

相關(guān)文章

  • 理解JavaScript的核心知識(shí)點(diǎn):原型

    摘要:首先,需要來理清一些基礎(chǔ)的計(jì)算機(jī)編程概念編程哲學(xué)與設(shè)計(jì)模式計(jì)算機(jī)編程理念源自于對(duì)現(xiàn)實(shí)抽象的哲學(xué)思考,面向?qū)ο缶幊淌瞧湟环N思維方式,與它并駕齊驅(qū)的是另外兩種思路過程式和函數(shù)式編程。 JavaScript 中的原型機(jī)制一直以來都被眾多開發(fā)者(包括本人)低估甚至忽視了,這是因?yàn)榻^大多數(shù)人沒有想要深刻理解這個(gè)機(jī)制的內(nèi)涵,以及越來越多的開發(fā)者缺乏計(jì)算機(jī)編程相關(guān)的基礎(chǔ)知識(shí)。對(duì)于這樣的開發(fā)者來說 J...

    iKcamp 評(píng)論0 收藏0
  • 面向?qū)ο蟮?JavaScript

    摘要:是完全的面向?qū)ο笳Z言,它們通過類的形式組織函數(shù)和變量,使之不能脫離對(duì)象存在。而在基于原型的面向?qū)ο蠓绞街校瑢?duì)象則是依靠構(gòu)造器利用原型構(gòu)造出來的。 JavaScript 函數(shù)式腳本語言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長(zhǎng)期以來人們對(duì)這一門語言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z言,或者只是部分具備一些面向?qū)ο蟮奶卣鳌1疚膶⒒貧w面向?qū)ο蟊疽猓瑥膶?duì)語言感悟的角度闡述為什...

    novo 評(píng)論0 收藏0
  • 深入理解Javascript原型關(guān)系

    摘要:如下所示在規(guī)范中,已經(jīng)正式把屬性添加到規(guī)范中也可以通過設(shè)置和獲取對(duì)象的原型對(duì)象對(duì)象之間的關(guān)系可以用下圖來表示但規(guī)范主要介紹了如何利用構(gòu)造函數(shù)去構(gòu)建原型關(guān)系。 前言 在軟件工程中,代碼重用的模式極為重要,因?yàn)樗麄兛梢燥@著地減少軟件開發(fā)的成本。在那些主流的基于類的語言(比如Java,C++)中都是通過繼承(extend)來實(shí)現(xiàn)代碼復(fù)用,同時(shí)類繼承引入了一套類型規(guī)范。而JavaScript是...

    ethernet 評(píng)論0 收藏0
  • JavaScript 原型中的哲學(xué)思想

    摘要:而作為構(gòu)造函數(shù),需要有個(gè)屬性用來作為以該構(gòu)造函數(shù)創(chuàng)造的實(shí)例的繼承。 歡迎來我的博客閱讀:「JavaScript 原型中的哲學(xué)思想」 記得當(dāng)年初試前端的時(shí)候,學(xué)習(xí)JavaScript過程中,原型問題一直讓我疑惑許久,那時(shí)候捧著那本著名的紅皮書,看到有關(guān)原型的講解時(shí),總是心存疑慮。 當(dāng)在JavaScript世界中走過不少旅程之后,再次萌發(fā)起研究這部分知識(shí)的欲望,翻閱了不少書籍和資料,才搞懂...

    sugarmo 評(píng)論0 收藏0
  • 你是否理解js的Object與Function與原型

    摘要:原型對(duì)象是由創(chuàng)建的,因此原型對(duì)象的構(gòu)造函數(shù)是構(gòu)造函數(shù)也可以是稱為對(duì)象,原型對(duì)象也就繼承了其生父構(gòu)造函數(shù)中的數(shù)據(jù),也同時(shí)繼承了原型對(duì)象的數(shù)據(jù)。當(dāng)然這條原型鏈中的數(shù)據(jù),會(huì)被還是還是這類構(gòu)造函數(shù)繼承,但是不會(huì)被這些繼承,他們不處于同一個(gè)鏈條上。 js中,F(xiàn)unction的本質(zhì)是什么?Object的本質(zhì)又是什么?js中有幾條原型鏈? showImg(https://segmentfault.c...

    itvincent 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<