物件導向精要 建構函式和原型物件

2022-04-22 06:30:22 字數 3108 閱讀 4375

function

person()

建構函式-----首字母大寫

function

person()

var person1 = new person()

instanceof  方法

function

person()

var person1 = new

person();

console.log(person1

instanceof person);/*

true

*/

constructor  方法

function

person()

var person1 = new

person();

console.log(person1.constructor === person);/*

true

*/

建議使用instanceof檢測物件型別,因為建構函式屬性可以被覆蓋,並不一定完全準確。

原型物件好比物件的基類。

幾乎所有的函式都有乙個名為prototype的屬性,該屬性數乙個原型物件用來建立新的物件例項。

例項物件的內部屬性,跟蹤到原型物件。

指向該例項使用的原型物件的乙個指標。

讀取方法:

object.getprototypeof()

function

person()

var person1 = new

person();

var prototype =object.getprototypeof(person1);

console.log(prototype === person.prototype)/*

true

*/

大部分引擎在所有物件上都支援乙個名為__proto__的屬性。該屬性可以直接讀寫[[prototype]]屬性。

function

person(name)

person.prototype.sayname = function

() ;

var person1 = new person("qian");

var person2 = new person("wei");

person1.sayname();

//qian

person2.sayname(); //

wei

sayname()現在是乙個原型屬性而不是自有屬性

新增多個屬性,簡潔的方法

function

person(name)

person.prototype =,

tostring:

function

() };

var person1 = new person("qian");

person1.sayname();

/*qian

*/console.log(person1.tostring());

/*[person qian]

*/

***

function

person(name)

person.prototype =,

tostring:

function

() };

var person1 = new person("qian");

person1.sayname();

/*qian

*/console.log(person1.tostring());

/*[person qian]

*/console.log(person1

instanceof person);/*

true

*/console.log(person1.constructor === person);/*

false

*/console.log(person1.constructor === object);/*

true

*/

使用物件字面量形式改寫原型物件改變了建構函式的屬性,因此他現在指向object而不是person。

原因:原型物件具有乙個constructor屬性,這是其他物件例項所沒有的,當乙個函式被建立時,它的prototype屬性也被建立,且該原型物件的constructor屬性指向該函式。當使用物件字面形式改寫原型物件的person.prototype時,其constructor屬性將被置為泛用物件object()。

解決辦法:需要在改寫原型物件時手動重置為constructor屬性

*/在array.prototype上建立乙個名為sum()方法。

物件導向 建構函式 原型物件

3.建構函式的執行過程 4.建構函式的返回值 5.與普通函式的區別 原型物件 物件的封裝 proto 繼承使用prototype實現繼承 組合式繼承 定義 在js中,使用new關鍵字來呼叫的函式,被稱為建構函式。建構函式的作用 建立物件。假如需要建立多個類似的物件,我們會書寫很多重複的無意義 此時我...

建構函式,原型物件,

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

建構函式 原型物件

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