JavaScript原型和原型鏈

1、對象與函數的關係瀏覽器

1.對象是函數建立,函數也是一種對象。函數

2.對象的建立方式prototype

2.1.Object構造函數建立對象new Object();對象

2.2.字面量建立對象var x = new();其本質就是new Object方式建立。繼承

2.3.經過工廠模式建立,在方法中使用new Object();能夠建立多個對象。ip

2.4.使用構造函數建立對象。原型鏈

2.5.使用原型建立對象。原型

2.6.使用構造函數和原型建立對象。構造函數

2.7使用Object.create();建立對象。方法

3.函數、對象、原型、原型鏈

1.每一個函數都有一個prototype,每個對象都有一個__proto__。

2.__proto__(隱式原型)與prototype(顯式原型)。

隱式原型:每個函數在建立以後都會擁有一個名爲prototype的屬性,這個屬性指向函數的原型對象。

顯示原型:JavaScript中任意對象都有一個內置屬性[[prototype]],在ES5以前沒有標準的方法訪問這個內置屬性,可是大多數瀏覽器都支持經過__proto__來訪問。

關係:隱式原型指向建立這個對象的函數(constructor)的prototype(顯示原型)

做用:顯式原型的做用:用來實現基於原型的繼承與屬性的共享;隱式原型的做用:構成原型鏈,一樣用於實現基於原型的繼承。舉個例子,當咱們訪問obj這個對象中的x屬性時,若是在obj中找不到,那麼就會沿着__proto__依次查找。

相關文章
相關標籤/搜索