js 原型對像

2021-09-25 06:01:48 字數 1907 閱讀 4926

建立物件的幾種方法

1.object例項

var person = new object();

2.字面量語法建立

var person=

弊端:

要產生大量物件,會產生大量重複**

solve:

用工廠模式,多次呼叫這個函式,建立相似物件

3.工廠模型

function createperson(name,age,job)

return o;

}var person1 = createperson('lili',29,'teacher');

var person2 = createperson('lulu',60,'doctor');

person1.sayname();//lili

person2.sayname();//lulu

// ecmascript的函式是物件,因此每定義乙個函式,就例項化乙個物件

console.log(person1.name ==person2.name)//false

console.log(person1.sayname == person2.sayname)//false

//console.log(person1.constructor == createperson)//false計算機識別是false.按理來說是true.

console.log(person1 instanceof createperson)//false計算機識別是false.按理來說是true.

優點:解決了多次呼叫這個函式建立相似物件

缺點:他不知道建立的這個物件從那裡來的,用instanceof,construtor都不起作用(這個缺點可以由建構函式建立物件來解決)

4.建構函式

function person(name,age,job)

//通過函式定義轉移到建構函式外部來解決這個問題

//這個問題就是:避免建立多個完成完成同樣任務的function例項,浪費記憶體空間。

function sayname ()

var person1 = new person('lisi',29,"software engineer");

var person2 = new person('gouzi',39,"doctor");

console.dir(person1);

console.dir(person2);

優點:知道自己建立的物件是**來的。

缺點:會建立多個完成同樣任務的function例項

solve

將函式定義放在建構函式外面》又產生新的問題

新問題:若定義超多方法,就會生成很多全域性函式,毀了封裝的概念。

解決就是「原型模型」

5.原型模型

可以讓所有的例項共享它所包含的屬性和方法

function person()

person.prototype.name = 'lili';

person.prototype.age = '40';

person.prototype.sayname = function()

var person1 = new person();

person1.sayname();//lili

var person2 = new person();

person1.sayname();//lili

console.log(person1.sayname == person2.sayname)//true

js複習之 Date對像

date 物件用於處理日期和時間。var mydate new date 注釋 date 物件會自動把當前日期和時間儲存為其初始值。ff firefox,ie internet explorer 屬性描述 ffie constructor 返回對建立此物件的 date 函式的引用。14 protot...

歷史對像(版本對像)

什麼叫歷史物件 版本對像 自己取乙個的名字,不知道是否有專業的名稱了 在一些系統中我們經常會碰到處理的物件是歷史物件的問題 比方說我們有乙個訂單 訂單裡有多個產品,然後使用者可能會修改這個產品 比如說,名稱,稅收,用哲學的語言就是今天的我不是昨天的我。哪麼我們認為這個東西就是歷史對像了,訂單關聯的是...

JS 物件 JS原型 原型鏈

參考學習 js物件 構造器函式 建立物件的函式。物件分為普通物件和函式物件。所有物件都有 proto 屬性 函式物件不止有 proto 屬性,還有prototype屬性 稱為原型物件 1.new function 產生的物件都是函式物件。2.所有函式物件的 proto 都指向function.pro...