首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用prototype模拟静态变量

使用prototype模拟静态变量
EN

Stack Overflow用户
提问于 2012-06-15 08:11:44
回答 2查看 572关注 0票数 0
代码语言:javascript
运行
复制
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");

下面的代码似乎不能工作,尽管从逻辑上讲,我觉得它似乎很好用。为什么这里不显示姓名和人口?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-15 08:14:46

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

代码语言:javascript
运行
复制
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. 使用类名而不是this

将其定义为classname.varname

  • use it
票数 3
EN

Stack Overflow用户

发布于 2012-06-15 08:15:02

试试这个:

代码语言:javascript
运行
复制
function Person() {}
Person.staticProperty = "foo";
var obj = new Person();

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11043061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档