這篇文章帶給大家的內容是關於JavaScript中建構函數與原型鏈之間的關係介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
在Javascript中不存在class的概念,它的class概念是透過建構函式(constructor)與原型鏈(prototype)來實現。
1.建構函式(constructor):建立物件時的初始化對象,總是與new 關鍵是一同出現。
建構函數有下列特點:
1、建構函數內的this 指向目前實例物件。
2、使用new 關鍵字實例化目前物件。
3、建構函數首字母大寫,區分普通函數。
4、實例物件都可以繼承建構函式中的屬性與方法。但是,同一個物件實例之間,無法共用屬性。
2.原型(prototype):是一個對象,實現對象的屬性繼承。 javascript 中的物件透過proto 來指向原型對象,可以透過Object.__proto__ 來存取
3.建構子與與原型的連結:
<script> function Demo(){ } var demo = new Demo() var data= demo.prototype = function(){ } console.log(demo.__proto__) console.log(data.constructor ) console.log(data.prototype.__proto__) console.log(demo.constructor.prototype) console.log(demo.constructor) 输出: {constructor: ƒ}constructor: ƒ Demo()__proto__: Object ƒ Function() { [native code] } {constructor: ƒ, __defineGetter__: ƒ, __defineSetter__: ƒ, hasOwnProperty: ƒ, __lookupGetter__: ƒ, …} {constructor: ƒ} ƒ Demo(){ } </script>
從以上輸出結果可見:
建構函數的__proto__ 指向原型物件;
原型的constructor 指向建構子Function;
原型的prototype.__proto__ 等於Object.__proto__;
# 的.prototype 指向原型;
實例的constructor 指向建構子
引用圖例:
![1460000018155881][1]
以上是JavaScript中建構函式與原型鏈的關係介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!