的javascript“类”执行功能的功能
问题描述:
里面我有一个JavaScript类,看起来像这样:的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()
执行?它似乎没有工作。
答
使用模式将吃内存像糖果,你正在创建每次您实例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
答
new xyPoint(1,1).hasX(); // true
你是什么意思“这似乎不起作用。”?它没有返回你期望的或者没有被呼叫?你如何实例化一个xyPoint对象?你如何调试? – arb
无法复制:http://jsfiddle.net/nrabinowitz/2uMes/ – nrabinowitz
JavaScript中没有任何类。你有什么功能。 –