我在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,而是取而代之的是未定义。这是为什么?
答案 0 :(得分:2)
您忘记了new
关键字:
myinstance = new myClass(x,y);
我尝试了代码,并且添加了它。
答案 1 :(得分:1)
您未使用new
运算符,myinstance
为undefined
。
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);
}
这对我来说非常好