-2

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

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);

就在 return 声明之前,我确实得到了trueor false

4

1 回答 1

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.

于 2013-05-07T14:11:01.347 回答