Javascript 使用prototype模拟静态变量
下面的代码似乎不起作用,尽管从逻辑上讲,我觉得它似乎是合理的。为什么不显示姓名和人口? 只要您想要静态类变量,您就需要:Javascript 使用prototype模拟静态变量,javascript,Javascript,下面的代码似乎不起作用,尽管从逻辑上讲,我觉得它似乎是合理的。为什么不显示姓名和人口? 只要您想要静态类变量,您就需要: 将其定义为classname.varname 使用类名,而不是this 只要您想要静态类变量,您就需要: 将其定义为classname.varname 使用类名,而不是this 试试这个: var Person = function(name) { this.name = name; console.log("Name: " + this.name)
classname.varname
this
李>
只要您想要静态类变量,您就需要:
classname.varname
this
李>
试试这个:
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");
staticProperty是在Person对象中定义的,该对象是函数。请尝试以下操作:
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");
staticProperty是在Person对象中定义的,Person对象是函数。你说得对。下次要礼貌一点。祝您愉快。除了使用
this.constructor.prototype.population
,还有什么方法可以访问Person.prototype.population
?静态变量应该通过classname.varname
访问,而不使用任何this
——这就是我要说的。这有什么不同?@Wex:没有什么大的区别,但是添加prototype
对于静态变量没有意义。只要它是静态的-它属于类,而不是您所说的实例。下次要礼貌一点。祝您愉快。除了使用this.constructor.prototype.population
,还有什么方法可以访问Person.prototype.population
?静态变量应该通过classname.varname
访问,而不使用任何this
——这就是我要说的。这有什么不同?@Wex:没有什么大的区别,但是添加prototype
对于静态变量没有意义。只要它是静态的,它就属于类,而不是实例
function Person() {}
Person.staticProperty = "foo";
var obj = new Person();