何時使用建構函式,建構函式使用new關鍵字

2022-06-25 15:48:08 字數 1498 閱讀 2047

關於何時使用js的建構函式

一般建立多個有相同屬性/方法的物件,就會去寫建構函式,就會去new

如果只是乙個單獨的物件,直接使用字面量就行了

var person =

};

js建構函式建立物件加new問題

/*new操作符做了些什麼呢:

1、建立乙個新物件

2、將建構函式的作用域賦給新物件(因此 this 就指向了這個新物件)

3、執行建構函式中的**(為這個新物件新增屬性)

4、返回新物件。

*/function

obj(name)

var a= obj("name11"); //

undefined

a.name; //

uncaught typeerror: cannot read property 'name' of undefined

var b = new obj('name22'); //

obj

b.name; //

name22

//使用new操作符建立物件,並且建構函式沒有返回值或者返回為基本資料型別,那麼返回該物件

function

obj(name)

var b = new obj(); //

obj

function

obj(name)

var b = new obj(); //

obj

//使用new操作符建立物件,並且建構函式返回乙個引用型別

function

obj02(name);

} var a02 = obj02("name11"); //

object {}

a02.name; //

undefined

var b02 = new obj02('name22'); //

object {}

b02.name;//

undefined/**

* 總結:

* 對於不加new來執行建構函式來說,返回值就是建構函式的執行結果

* 對於加new關鍵字來執行建構函式而言,如果return的是基本資料型別,那麼忽視掉該return值,

* 對於加new關鍵字來執行建構函式而言,如果返回的是乙個引用型別,那麼返回該引用型別

*/

如果你的物件有很多例項,或者涉及繼承或者建構函式傳參

function

person(name,address)

person.prototype.sayhello = function

()var p1 = new person('postbird','earth');

var p2 = new person('ptbird','month');

總的來說,建構函式應用比較廣泛,如果只是簡單地物件,使用字面量就夠了。

建構函式在物件例項化、繼承等應用還是比較多的

建構函式使用

建構函式具有兩個特點,第一首字母大寫,第二內部使用this關鍵字,呼叫時必須通過new命令呼叫生成例項。new的作用 呼叫建構函式生成乙個例項物件,有點類似於工廠模式,每個例項擁有建構函式的方法與屬性。使用new時可以不加 new foo 不過閱讀方便這裡推薦加上,建構函式可以接受引數,與普通函式一...

建構函式的使用

在c 中,我們一般會利用建構函式來初始化類裡面的成員函式,先看下面一段 可以自己先考慮輸出語句會不會是0?include using namespace std struct cls cls int main cls obj cout 在 第10行,不帶引數的建構函式直接呼叫了帶引數的建構函式。這種...

建構函式的使用

個人理解的建構函式的使用 function person name,height var person person xiaoli 180 var person1 person xiaohei 170 列印出來的結果是 person object person1 object 個人理解 functi...