var boxArea = function() {
this.width=2;
};
alert(boxArea.width);
美好的一天。爲什麼這會返回一個未定義的值?使用函數創建Javascript對象
var boxArea = function() {
this.width=2;
};
alert(boxArea.width);
美好的一天。爲什麼這會返回一個未定義的值?使用函數創建Javascript對象
因爲您使用該語法創建了一個函數。你必須在函數()前添加「new」關鍵字,使它與一個類的等價。
的jsfiddle演示:http://jsfiddle.net/dfUQu/
var boxArea = new function() {
this.width=2;
};
alert(boxArea.width);
經典的方式來創建一個JavaScript構造使用聲明的函數:
function BoxArea(width) {
this.width = width;
}
按照慣例,構造具有開頭大寫字母的名字。然後創建一個實例:
var ba = new BoxArea(2);
alert(ba.width); // 2
對於這樣一個簡單的對象,你可以只是做:
var ba = {width: 2};
閱讀了關於JavaScript的[模塊模式](http://www.adequatelygood.com/2010/3/JavaScript的模塊的模式的縱深)。它解釋了你的width變量是如何對boxArea對象進行私有的。 – Straseus 2012-03-22 23:33:50
將使用「=新功能」 – qux 2012-03-22 23:36:01