0

我在 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 访问构造函数变量而无需创建变量吗?

4

2 回答 2

2

age不。您示例中的变量是在构造函数运行时创建的;因此,在您运行该功能之前,它不会可用。

于 2012-05-24T12:58:00.130 回答
2

所以据我所知,除非我从 Class 创建一个对象,否则我无法访问存储在 MyClass 中的构造函数变量

正确的。它们在函数体中分配。在函数执行之前,它们不会存在。

所以重申一下,我可以直接从 MyClass 访问构造函数变量而无需创建变量吗?

不。

于 2012-05-24T12:58:09.487 回答