徹底深刻理解js原型鏈之prototype,proto以及constructor(一)

前言

以下概念請花費一定的時間徹底理解,才能進行下一步,思考題一定要思考,這樣才能徹底掌握原型鏈的知識點,教程中如果有任何的錯誤不足請指正!

函數對象

由function創造出來的函數,比如:

    function a(){};
    var b=function(){};

系統內置的函數對象

Function,Object,Array,String,Number

只有函數對象纔有 prototype屬性 ,重要的事情說三遍!

思考: js的引用數據類型都屬於函數對象嗎?

普通對象

除開函數對象之外的對象都是普通對象

var b='qwe'; // b 是字符串類型,屬於普通對象
var c=123;; // c 是數字類型,屬於普通對象

思考:js有五種基本類型:Undefined,Null,Boolean,Number和String,他們都是屬於普通對象嗎?

原型對象

prototype屬性也叫原型對象,主要是爲了實現繼承和共享屬性;

可以說我們的每一次編程,內在都有原型對象來發揮着作用,如果你沒有掌握原型對象的含義,那麼你的js還沒有真正的入門!

function a(){};

首先對象 a 是由Function創造出來,是函數對象;那麼根據我們以上的教程,a 就有了prototype屬性,那麼這個原型對象是怎麼創造出來的呢? 來看下面這個例子:

var temp = new a();
a.prototype=new Object();
a.prototype = temp;

那麼a的prototype屬性就是這樣創造出來的;

思考:原型對象prototype 屬於函數對象嗎?

原文鏈接:【https://www.infoq.cn/article/lXtBrMtRPmzcbLHEHFYN】。未經作者許可,禁止轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章