function建構函式-----首字母大寫person()
functioninstanceof 方法person()
var person1 = new person()
functionconstructor 方法person()
var person1 = new
person();
console.log(person1
instanceof person);/*
true
*/
function建議使用instanceof檢測物件型別,因為建構函式屬性可以被覆蓋,並不一定完全準確。person()
var person1 = new
person();
console.log(person1.constructor === person);/*
true
*/
原型物件好比物件的基類。
幾乎所有的函式都有乙個名為prototype的屬性,該屬性數乙個原型物件用來建立新的物件例項。
例項物件的內部屬性,跟蹤到原型物件。
指向該例項使用的原型物件的乙個指標。
讀取方法:
object.getprototypeof()
function大部分引擎在所有物件上都支援乙個名為__proto__的屬性。該屬性可以直接讀寫[[prototype]]屬性。person()
var person1 = new
person();
var prototype =object.getprototypeof(person1);
console.log(prototype === person.prototype)/*
true
*/
functionsayname()現在是乙個原型屬性而不是自有屬性person(name)
person.prototype.sayname = function
() ;
var person1 = new person("qian");
var person2 = new person("wei");
person1.sayname();
//qian
person2.sayname(); //
wei
新增多個屬性,簡潔的方法
function***person(name)
person.prototype =,
tostring:
function
() };
var person1 = new person("qian");
person1.sayname();
/*qian
*/console.log(person1.tostring());
/*[person qian]
*/
function使用物件字面量形式改寫原型物件改變了建構函式的屬性,因此他現在指向object而不是person。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
*/
原因:原型物件具有乙個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 的存在...