var person = new object();
person.name = "店小二";
person.age = 18;
person.say = function()
person.say();
使用這種定義的方式,雖然可以定義乙個物件,但是因為沒有類的約束,所以無法實現物件的重複使用。
var person = [
},},
}]
function creatperson(name,age,***)
return person;
}var p1 = creatperson("店小二",12,"男");
p1.say();
alert(typeof p1);
function person(name,age,***)
}var p1= new person("店小二",12,"男");
p1.say();
alert(p1 instanceof person); //判斷乙個物件屬於某個類,返回布林值
基於建構函式的定義的方式最大的好處除了物件重複使用外,就是讓我們還可以判斷它的型別。
此時基於建構函式的定義物件的方式看似已經很完美了,需要的問題它都可以解決了,
但是卻存在乙個問。
通過**分析得知:say 方法在每個物件建立後都存在了乙個方法拷貝(但是我們發現**在只有呼叫時,say 方法才會在堆中建立),這樣就增加了記憶體的消耗了,如果在物件中有大量的方法時,記憶體的消耗就會高,這樣不行了。
可以試著將方法寫到建構函式外邊,但是這樣會帶來另乙個問題,就是方法一但定義為全域性函式,那麼 window 物件就可以呼叫該方法,這樣就破壞了物件的封裝性。
JavaScript物件導向
方法一 建構函式法 function cat cat.prototype.showname function var cat new cat cat.name tom cat.showname tom 它用建構函式模擬 類 在其內部用this關鍵字指代例項物件。類的屬性和方法,還可以定義在建構函式的...
javaScript物件導向
code 類lecture構造器 使用兩個字串函式,name和teacher function lecture name,teacher 類lecture的方法,生成乙個顯示該課程資訊的字串 lecture.prototype.display function 類schedule的構造器 使用乙個l...
Javascript 物件導向
什麼是物件everything is object 萬物皆物件 物件到底是什麼,我們可以從兩次層次來理解。1 物件是單個事物的抽象。一本書 一輛汽車 乙個人都可以是物件,乙個資料庫 一張網頁 乙個與遠端伺服器的連線也可以是物件。當實物被抽象成物件,實物之間的關係就變成了物件之間的關係,從而就可以模擬...