为什么我的原型函数没有返回实例的属性?

时间:2010-06-11 07:31:26

标签: javascript

我在Javascript中有一个简单的对象。

  

函数myClass(x,y){

this.x = x;

this.y = y;
     

}

和原型函数

  

myClass.prototype.myfunction = function(){

     

的console.log(this.x);

     

}

在我的主脚本中,

  

var x = 2; var y = 4;

     

myinstance = new myClass(x,y);

     

myinstance.myfunction();

而不是接收x,而是取而代之的是未定义。这是为什么?

4 个答案:

答案 0 :(得分:2)

您忘记了new关键字:

myinstance = new myClass(x,y);

我尝试了代码,并且添加了它。

答案 1 :(得分:1)

您未使用new运算符,myinstanceundefined

var x = 2; var y = 4;

myinstance = new myClass(x,y);
myinstance.myfunction(); // will show `2` in the console

修改:由于您说您正在使用new运算符,我认为您可能正在控制台执行myinstance.myfunction();,您可能正在查看结果(该方法的返回值,实际为undefined,因为它不包含return语句。

查看工作示例here

答案 2 :(得分:0)

我认为你应该做myinstance = new myClass(x,y);

答案 3 :(得分:0)

嗯...尝试像这样实现你的功能

var myClass = function (x,y) {

this.x = x;
this.y = y;
this.myfunction = function(){
    console.log(this.x);
}

this.x = x; this.y = y; this.myfunction = function(){ console.log(this.x); }

这对我来说非常好