前言
以下概念請花費一定的時間徹底理解,才能進行下一步,思考題一定要思考,這樣才能徹底掌握原型鏈的知識點,教程中如果有任何的錯誤不足請指正!
函數對象
由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】。未經作者許可,禁止轉載。