Javascript函数总是返回true?

时间:2013-05-07 13:54:16

标签: javascript function return

我有这个函数,它是一个对象的属性,

Layer.prototype.mouseInBounds = function() {

    // Return value
    var ret = true;
    // Layer mouse co-ordinates are not valid
    if (this.mouse.x < 0 || this.mouse.y < 0 || this.mouse.x >= this.width || this.mouse.y >= this.height) {
        // Set layer mouse co-ordinates to false
        this.mouse.x = false;
        this.mouse.y = false;
        // Set return value
        ret = false;
    }
    return ret;
};

但是当我从另一个将图层作为属性的对象中调用它时,

this.layer.mouseInBounds() // true

无论ret函数内部mouseInBounds的值是多少?

修改

为了更好地理解我的问题mouse是图层的属性,并在添加

console.log(ret);

在返回语句之前,我确实得到了truefalse

1 个答案:

答案 0 :(得分:1)

它始终返回true,因为:

  • this.mouse.x < 0始终为false

  • this.mouse.y < 0始终为false

  • this.mouse.x >= this.width始终为false

  • this.mouse.y >= this.height始终为false

我不知道mouse.xmouse.y具体代表什么,但如果它们是从窗口左上角测量的x / y鼠标坐标,那么我不知道它们如何小于0