0
function Person() {}
Person.prototype.population = 0;
Person.prototype.constructor = function(name) {
    this.name = name;
    console.log("Name: " + this.name);
    console.log("Population: " + (++this.population) );
}

var p = new Person("Wex");

以下代码似乎不起作用,尽管从逻辑上讲我觉得它看起来很合理。这怎么不显示名字和人口?

4

2 回答 2

3

http://jsfiddle.net/zerkms/gvjEF/

var Person = function(name) {
    this.name = name;
    console.log("Name: " + this.name);
    console.log("Population: " + (++Person.population) );
};
Person.population = 0;

var p = new Person("Wex");
var p = new Person("Wex");

只要您想要静态类变量,您就需要:

  1. 将其定义为classname.varname
  2. 使用类名,而不是this ​</li>
于 2012-06-15T00:14:46.433 回答
0

试试这个:

function Person() {}
Person.staticProperty = "foo";
var obj = new Person();

staticProperty 是在 Person 对象中定义的,也就是函数。

于 2012-06-15T00:15:02.193 回答