js建立物件的多種方式及優缺點

2022-07-13 14:45:17 字數 1626 閱讀 9937

在js中,如果你想輸入乙個的資訊,例如姓名,性別,年齡等,如果你用值型別來儲存的話,那麼你就必須要宣告很多個變數才行,變數宣告的多了的話,就會造成變數汙染。所以最好的方式就是儲存到物件中。下面能我就給大家介紹幾種建立物件的方式,並且給大家說一下他們的優缺點

方式一:物件字面量

var obj=

缺點:只能建立一次物件,復用性較差,如果要建立多個物件,**冗餘度太高

方式二:使用內建建構函式

var obj=new

object();

obj.name="李白";

obj.type="刺客";

obj.skill="舞劍";

缺點:只能建立一次物件,復用性較差,如果要建立多個物件,**冗餘度太高

方式三:工廠模式(不推薦使用)

function

creat(name,type,skill)

return

obj;

}var hero=creat("李白","刺客","寫詩");

var heronext=creat("趙雲","突進","將軍");

缺點:物件無法識別,因為所有的例項都指向乙個原型

方法四:建構函式模式

function

person(singer,song,type)

var obj=new person("田馥甄","小幸運","流行歌");

console.log(obj);

注意點:1.如果不寫返回值,預設返回的是新建立出來的物件 (一般都不會去寫這個return語句)

2.如果我們自己寫return語句 return的是空值(return;),或者是基本型別的值或者null,都會預設返回新建立出來的物件

3.如果返回的是object型別的值,將不會返回剛才新建立的物件,取而代之的是return後面的值

優點:例項時可以識別為乙個特定的型別

缺點:建構函式中定義函式,那麼每次建立物件,都會重新建立該函式,這樣會導致全域性變數增多,造成汙染,**結構會混亂,不易維護

方法五:原型

function

person(name, age, gender)

var p =new person("張學友",18,"male");

var p1 = new person("劉德華",19,"male");

person.prototype.sayhello = function

() person.prototype["sing"] = function

() p.sayhello();

p1.sayhello();

p.sing();

p1.sing();

優點:說明:建構函式的原型物件中的成員,可以被該建構函式建立出來的所有物件訪問,而且,所有的物件共享該物件,所以,我們可以將建構函式中需要建立的函式,放到原型物件中儲存,這樣就解決 全域性變數汙染的問題 以及 **結構混亂的問題

缺點:不能初始化引數

深入之建立物件的多種方式以及優缺點

1.工廠模式 缺點 物件無法識別,因為原型都指向object function pe return o 2.建構函式模式 優點 例項可以識別為乙個特定的型別 缺點 每次建立例項每個方法都要被建立一次 function person name var person new person zhansan...

Js繼承方式及優缺點

作為一門基於物件的語言,js中也可以通過繼承來實現父型別和子型別之間屬性或方法的傳遞,其方式有以下幾種 1 原型鏈繼承 子型別的原型物件是父型別的例項即subertype.prototype new supertype 缺點 子型別繼承了父型別原型中的所有屬性和方法,但是對於引用型別的屬性值,所有例...

建立執行緒的方式及優缺點

定義父類thread的子類,並重寫父類方法中的run 方法,該方法的方法體表示了該執行緒要完成的任務,所以稱run 方法為執行體。建立該thread子類的例項物件。呼叫該執行緒物件的start 方法來啟動該執行緒。定義 runnable 介面的實現類,並重寫該介面的 run 方法,該 run 方法的...