關於何時使用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...