建立物件的幾種方法
1.object例項
var person = new object();
2.字面量語法建立
var person=
弊端:3.工廠模型要產生大量物件,會產生大量重複**
solve:
用工廠模式,多次呼叫這個函式,建立相似物件
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.
優點:解決了多次呼叫這個函式建立相似物件4.建構函式缺點:他不知道建立的這個物件從那裡來的,用instanceof,construtor都不起作用(這個缺點可以由建構函式建立物件來解決)
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...