你如何访问构造函数变量?

时间:2012-05-24 12:56:08

标签: javascript prototype-programming

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

2 个答案:

答案 0 :(得分:2)

没有。当构造函数运行时,示例中的变量age created ;因此,在运行该功能之前它不可用。

答案 1 :(得分:2)

  

从我所知道的,除非我从Class

创建一个对象,否则我无法访问存储在MyClass中的构造函数变量。

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

  

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

没有