JS基礎 物件建立

2021-09-11 14:50:19 字數 2073 閱讀 7283

var obj = new object()

複製**

var obj =

}複製**

使用同乙個介面建立很多物件,會產生大量的重複**。

為了避免該情況,我們把建立物件的過程封裝在函式體內,通過函式的呼叫直接生成物件(工廠模式)。

因為ecmascript無法建立類,所以就用函式來封裝以特定介面物件的細節。

//本質就是在函式內通過new關鍵字建立物件,並將傳入的值賦值給物件,最後通過函式將物件return出來

function createperson(name,age);

return obj;

}//呼叫函式建立物件

var person1 = createperson('jiangwen,18');

var person2 = createperson('owen,24');

複製**

function  person (name,age)

}//通過new例項化建構函式建立物件

var jw = new person('jiangwen',18);

複製**

對比工廠模式,我們可以發現以下區別:

alert(jw instanceof object);//ture

alert(jw instanceof person);//ture

複製**

可以通過下列任何一種方式來呼叫:

// 當作建構函式使用

var person = new person("jiangwen", 29);

person.sayname(); //"nicholas"

// 作為普通函式呼叫

person("greg", 27); // 新增到 window

window.sayname(); //"greg"

// 在另乙個物件的作用域中呼叫

var o = new object();

person.call(o, "kristen", 25);

o.sayname(); //"kristen"

複製**

函式宣告(可在函式未宣告前呼叫)

function

add(){}

複製**

函式表示式(需要在表示式之後呼叫)

var add = function

(){}

複製**

每個方法都要在每個例項上重新建立一遍,方法指的就是我們在物件裡面定義的函式。如果方法的數量很多,就會占用很多不必要的記憶體。於是出現了第五種建立物件的方法

function

person

(){};

person.prototype.name = 'owen';

person.prototype.age = 22';

person.prototype.age.sayname = function()

var jw1 = new person();

var jw2 = new person();

jw2.name = 'jiangwen';

alert(jw1.name);//'owen'--來自原型

alert(jw2.name);//'jiangwen'--來自例項

複製**

當為物件例項新增乙個屬性時,這個屬性就會遮蔽原型物件中儲存的同名屬性。

使用建構函式模式與原型模式結合的方式,建構函式模式用於定義例項屬性,而原型模式用於定義方法和共享的屬性

function person(name,age,job)

person.prototype=

}var person1 = new person('nike',20,'teacher')

複製**

js 建立js物件

js建立類有集中方法,我個人比較喜歡的方式是 混合的建構函式 原型方式 比較好理解 用建構函式來定義非函式屬性,用原型方式定義物件的函式屬性,結果所有函式鬥只建立一次,而每個物件鬥具有自由的物件屬性例項。function ocar color ocar.prototype.showcolor fun...

js建立物件陣列 JS 物件

定義 無序的資料集合 鍵值對集合 建立物件的方式 new 操作符 object 建立物件 var person new object person.name lisi person.age 21 person.family lida lier wangwu person.say function 2...

js 建立物件

js建立物件方式 var lev function function parent var x parent alert x.name alert x.lev 說明 1.在函式中定義物件,並定義物件的各種屬性,雖然屬性可以為方法,但是建議將屬性為方法的屬性定義到函式之外,這樣可以避免重複建立該方法 ...