深入理解建構函式和原型鏈

2022-07-27 02:21:13 字數 634 閱讀 9325

使用建構函式初始化物件的過程

function base(){} //函式宣告

var base=new base() //物件初始化

為base物件新增屬性:

新增prototype屬性:先用new object()建立新物件,並為新物件建立constructor屬性,屬性值設定為base;最後將該物件賦值給prototype屬性;

為base物件新增其他屬性,如call,construct,scope,length等屬性;

執行var base=new base()

呼叫base.call(x),對x進行初始化;

返回x,x就是base;

如果base()使用return返回其他物件,base就是其他物件;

原型鏈所以base._proto_._proto_==object.prtotype; //原型鏈

原型繼承

function case(){};

case.prototype=base;

var case=new case();

物件的constructor屬性

紅色f.prototype作為物件其原型是object.prototype;

青色藍色

黃色紫色

橙色

深入理解JS instanceof和原型鏈

又介紹乙個老朋友 instanceof。對於值型別,你可以通過typeof判斷,string number boolean都很清楚,但是typeof在判斷到引用型別的時候,返回值只有object function,你不知道它到底是乙個object物件,還是陣列,還是new number等等。這個時候...

深入理解JavaScript的原型 原型鏈與繼承

在介紹原型是什麼之前,首先需要知道原型是做什麼用的,在js高設書中,明顯可以看到介紹有關原型的知識是在介紹建立物件的方式時提出來的,即使用原型模式來建立物件,顯而易見,原型這個概念是與建立物件聯絡在一起的。當然,建立物件的方式有很多種,如工廠模式,建構函式模式,以及與原型模式有關的其他模式等。我們建...

深入理解原型鏈的本質

原型鏈是作為實現繼承的主要方法,基本思想是利用原型讓乙個引用型別繼承另乙個引用型別的屬性和方法。實現原型鏈的 如下 function super super.prototype.getsupervalue function function sub 繼承了super sub.prototype ne...