我有一个类似这样的javascript类:
function xyPoint(x, y)
{
this. x = x;
this.y = y;
this.hasX = function()
{
return (this.x != null);
}
this.dumbFunction = function()
{
if (this.hasX())
//do something
}
}
如何执行此this.hasX()
?它似乎不起作用。
答案 0 :(得分:2)
使用该模式会像吃糖果一样吃掉内存,你每次创建一个新的闭包 你实例化xyPoint
..不要在构造函数中定义任何函数。使用原型对象,只定义一次:
function xyPoint(x, y)
{
this. x = x;
this.y = y;
}
xyPoint.prototype = {
constructor: xyPoint,
hasX: function(){
return (this.x != null);
},
dumbFunction: function(){
if (this.hasX())
//do something
}
};
现在已经说过重要的事了......你会像这样使用它(两个版本):
var a = new xyPoint( 1,2 );
a.hasX() //true
答案 1 :(得分:1)
new xyPoint(1,1).hasX(); // true