的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()执行?它似乎没有工作。

+1

你是什么意思“这似乎不起作用。”?它没有返回你期望的或者没有被呼叫?你如何实例化一个xyPoint对象?你如何调试? – arb

+1

无法复制:http://jsfiddle.net/nrabinowitz/2uMes/ – nrabinowitz

+0

JavaScript中没有任何类。你有什么功能。 –

使用模式将吃内存像糖果,你正在创建每次您实例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