JS物件 構造器函式和原型物件之間的關係

2022-07-25 01:54:08 字數 1262 閱讀 8308

一、基本概念

1、物件:屬性和方法的集合,即變數和函式的封裝。每個物件都有乙個__proto__屬性,指向這個物件的建構函式的原型物件

2、構造器函式:用於建立物件的函式,通過new關鍵字生成物件。函式名一般首字母大寫的。

3、原型物件:每個函式都有乙個prototype屬性,它是乙個指向原型物件的指標(原型物件在定義函式時同時被建立)

二、建立物件的方法

1、使用建構函式和原型物件共同建立

如上圖,構造器函式person(),通過new關鍵字建立了兩個例項化物件p1、p2,這兩個新物件都繼承了,構造器person()函式prototype屬性所指向的原型物件。通過建構函式建立例項物件p1和p2的時候,其中name、age、job這些是通過建構函式生成的(本地部分),sayname方法是通過繼承原型物件來實現共享的(遠端部分),這樣多個例項物件都是由本地(私有)和遠端(共享)兩部分組成

function person(name, age, job)

person.prototype =

}var p1 = new person("tom", 29, "teacher");//例項化物件p1//,object即原型物件:person.prototype指向的物件

var p2 = new person("jack", 27, "doctor");//例項化物件p2//

2、僅使用原型物件建立

如上圖,使用object.create方法從原型物件直接生成新的例項物件,新物件p1繼承原型物件的屬性和方法,但是這裡沒有用到建構函式

var person=//將這個物件當做原型

var p1=object.create(person)//生成例項物件

console.log(p1.classname)//human,相當於p1.__proto__.classname

這樣表述還是感覺有些生硬,來點更形象的比喻吧~

建構函式是媽,原型物件是爸,例項物件是孩子。媽讓每個孩子擁有私有能力,爸讓它們擁有共有能力(這個共有能力其實都是爸代勞的/(ㄒoㄒ)/~~);

建構函式,原型物件,

概念 如果函式中的邏輯生成乙個物件的並將其返回,我們就將其稱之為建構函式 回顧,普通函式,如下圖 一 建構函式嚴格意義就是用來生物件的 示例 用普通函式模擬的建構函式 二 建構函式是必須通過new這個關鍵字呼叫的 要改變this的指向 也稱為 例項化乙個物件 執行這個函式,生成乙個物件 它的作用就是...

建構函式 原型物件

物件都會有乙個屬性 proto 指向建構函式的prototype原型物件,之所以我們物件可以使用建構函式prototype原型物件的屬性和方法,就是因為物件有 proto 原型的存在 body p 建構函式 原型物件 p p 雖然構造物件上沒有sing方法,但是原型物件上有,因為 proto 的存在...

秒懂JS物件 構造器函式和原型物件之間的關係

學習js的過程中,想要掌握物件導向的程式設計風格,物件模型 原型和繼承 是其中的重點和難點,拜讀了各類經典書籍和各位前輩的技術文章,感覺都太過高深,花費了不少時間才搞明白 個人智商是硬傷 o 這裡略作總結盡量通俗易懂。一 基本概念 1 物件 屬性和方法的集合,即變數和函式的封裝。每個物件都有乙個 p...