-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 ステートメントの直前に、実際にまたはのいずれtruefalseを取得します。

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 に答える