使用原型模拟静态变量
Emulating static variables using prototype
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");
以下代码似乎不起作用,尽管从逻辑上讲,我觉得它似乎很合理。为什么这不显示名称和人口?
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");
只要你想要静态类变量,你需要:
- 将其定义为
classname.varname
- 使用类名使用它,而不是
this
试试这个:
function Person() {}
Person.staticProperty = "foo";
var obj = new Person();
staticProperty 在 Person 对象中定义,这是函数。
相关文章:
- Node.js-模块导出静态变量
- 在angularJS中定义函数内部的静态变量
- jsp内部html中的Javascript静态变量
- 是否可以在window.onresize上更改jQuery插件的静态变量
- 如何使用 dedeclare 定义 dojo 静态变量或静态对象
- 为什么我可以在ServiceNow中访问示例脚本化Web服务(订购黑莓)并返回静态变量,但它没有订购黑莓
- 为什么 Object.create 使我的私有变量成为静态变量
- 使用静态变量初始化同一类中的变量
- 具有 John Resig 简单类模式的静态变量
- 使用原型模拟静态变量
- 如何在 javascript 中使用 const 关键字 (ecma 6) 和函数静态变量
- 为什么要在函数定义之外引用静态变量(函数属性)
- 设置超时函数回调静态变量
- Javascript 类中的静态变量
- 更新 JavaScript 函数中的静态变量
- 是否可以使用 CoffeeScript 迭代类的静态变量和方法
- Javascript 中的静态变量继承 (ES6)
- 无法访问 JavaScript 对象中的静态变量,该对象对另一个 JavaScript 对象进行子类化
- 如何使用静态变量数组
- Javascript静态变量,并在不同的页面中使用