//1、建立物件
//缺點:建立很多個物件的時候會產生大量的**
var person = new
object();
person.name = "nicholas";
person.age = 24;
person.job = "碼農";
person.sayname = function
() //
2、工廠模式
//通過接收引數來構建乙個包含所有必要資訊的物件,節省了很多**
//缺點,沒有解決物件識別的問題(物件的型別)
function
creatperson(name, age, job)
returno;}
var person1 = creatperson("nicholas", 24, "碼農");
var person2 = creatperson("greg", 24, "碼農");
person1.sayname();
//nicholas
person2.sayname();//
greg
//3、建構函式模式
//和工廠模式不同的在於
//1、沒有顯示式的建立物件
//2、直接將屬性和方法賦給了this物件
//3、沒有reutrun語句
//缺點:建構函式的方法在每個例項上都要重新建立一遍
function
person(name, age, job)
}var person3 = new person("nicholas", 24, "碼農");
var person4 = new person("greg", 24, "碼農");
person3.sayname();
//nicholas
person4.sayname();//
greg
alert(person3.sayname == person4.sayname);//
false
//建立person的新例項,必須使用new操作符。以這種方式呼叫建構函式實際上會經歷以下4個步驟
//1、建立乙個新物件
//2、姜建構函式的作用與賦給新物件(因此this就指向了這個新物件)
//3、執行建構函式中的**(為這個新物件新增屬性和方法)
//4、返回新物件
//每個例項都有乙個constructor(建構函式)屬性,該屬性指向建構函式
alert(person3.constructor == person);//
true
alert(person4.constructor == person);//
true
//將建構函式當作乙個普通函式來使用
person("tom", 27, "碼農");
window.sayname();
//tom
var o = new
object();
person.call(o, "kittey", 25, "碼農");//
o.sayname();//
kittey
物件導向程式設計 建立物件
方法一 物件字面量 方法二 object建構函式 方法三 工廠模式 function createperson name,age,job person.prototype.name nicholas perosn.protptype.age 29 person.prototype.job soft ...
物件導向的程式設計之建立物件
物件的定義 無序屬性的集合,屬性的值可以是基本值 物件或者函式.每個物件都是基於乙個應用型別建立的,這個引用型別可以是內建的 例如objectarraymath 也可以是使用者自定義的.所有的物件都是繼承自object的,因此我們可以從object著手建立物件.通過new 關鍵字建立物件 var p...
物件導向 OO 的程式設計 建立物件
為了避免大量重複 產生,可採用以下方法建立物件 1 function createperson name,age,job 89 var person1 createperson bob 23,doctor 10var person2 createperson lily 21,student 其實就是...