javascript“class”在函数内执行函数

时间:2011-11-18 22:18:44

标签: javascript function this

我有一个类似这样的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()?它似乎不起作用。

2 个答案:

答案 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