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