【发布时间】:2012-05-24 12:56:07
【问题描述】:
我在 Javascript 中有一个“类”,并在构造函数中分配了一个变量。我还使用原型来存储变量/方法:
var MyClass = function()
{
this.age = 100;
};
MyClass.prototype.name = "John";
MyClass.prototype.getAge = function() { return this.age};
alert(MyClass.prototype.name); //Alerts John
alert(MyClass.age); //undefined as expected
alert(MyClass.prototype.getAge()); //undefined??
所以据我所知,除非我从 Class 创建一个对象,否则我无法访问存储在 MyClass 中的构造函数变量:
var theClass = new MyClass();
alert(theClass.age);
alert(theClass.getAge());
两个警报都会正确返回年龄。
所以重申一下,我可以直接从 MyClass 访问构造函数变量而不需要创建变量吗?
【问题讨论】:
-
为什么要避免使用变量?
-
@Nealbo,你需要使用like作为静态属性吗?
-
关于
alert(MyClass.prototype.getAge()); //undefined??:它会尝试访问不存在的MyClass.prototype.age。在构造函数内部this引用了一个空对象,该对象具有来自MyClass.prototype的inherits,因此age将永远 分配给MyClass.prototype。
标签: javascript prototype-programming