1.javascripte prototype如何使用

推薦看imooc的JavaScript深入教程,對JavaScript面向?qū)ο笾v解的更清晰.
-----分割線----
第一次用prototype的時(shí)候,比較迷茫。相對于Java,OC這類語言來說,prototype來繼承完全搞不懂在干什么??戳爽F(xiàn)代簡明魔法的文章后,恍然大悟。其實(shí)是因?yàn)镴avaScript是一種base prototype 語言,java之類的是base class語言。所以當(dāng)然大不相同,不需要以以前java的方式來思考,重新接受一種新的方式即可

JavaScript prototype背后的工作原理

最后一段即為大致js的工作全過程:
所以var obj=new func()這個(gè)過程更具體是這樣的:

javascript解析引擎遇到new后,開辟一片內(nèi)存并創(chuàng)建了一個(gè)空對象,并且將“this”指向這個(gè)空對象
javascript解析引擎將這個(gè)空對象的proto指向后面緊跟著的構(gòu)造函數(shù)默認(rèn)的prototype對象(一指向到prototype對象后,解析引擎就知道了“噢,這個(gè)對象要擁有這個(gè)prototype對象的屬性和方法了”)
javascript解析引擎執(zhí)行構(gòu)造函數(shù)體內(nèi)的代碼,也就正式開始對這個(gè)空對象進(jìn)行構(gòu)造(或者說裝配)的過程了(this.name="xxx",this.sayHello=function(){...}等等)
對象被構(gòu)造裝配好,并賦值到等號(hào)左邊的變量。

PS:__proto__type上文已經(jīng)提到,不了解的讀者,請去閱讀全文。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容