Javascript JS连接对象属性值(数值),而不是添加

Javascript JS连接对象属性值(数值),而不是添加,javascript,Javascript,在检查画布上两个对象是否相交的intersect函数中,我需要添加obj.x和obj.width属性以获得obj.right(side)。以某种方式,属性被连接而不是添加。它可能与引用类型有关,但我不知道如何捕获基元类型中的值 function intersects(obj1, obj2) { // checks if 2 shapes intersect var ob2x = obj2.x; var ob2width = obj2.width; if (obj1.x &

在检查画布上两个对象是否相交的intersect函数中,我需要添加obj.x和obj.width属性以获得obj.right(side)。以某种方式,属性被连接而不是添加。它可能与引用类型有关,但我不知道如何捕获基元类型中的值

function intersects(obj1, obj2) { // checks if 2 shapes intersect
    var ob2x = obj2.x;
    var ob2width = obj2.width;
    if (obj1.x > +obj2.x + 70 || obj2.x > +obj1.x + 70) {
        console.log('false : obj1.x=' + obj1.x + '     obj2.right=' + parseInt(ob2x) + parseInt(ob2width));
        return false;
    }

    if (obj1.y > +obj2.y + +obj2.height || obj2.y > +obj1.y + +obj1.height) {
        console.log('false');
        return false;
    }

    console.log('false');
    return true;
}
如您所见,我已经尝试获取object属性的数值。没用

还尝试了parseInt(),但无效


我想我可以将这些值单独作为参数放在函数中,但我希望它尽可能短,因为孩子们需要使用它。

您需要添加一个分组运算符:

 ... + (parseInt(ob2x) + parseInt(ob2width)) + ... 
隔离表达式的该部分,以便将
+
视为加法。否则,即使将值转换为数字,完整表达式仍将其保持为串联(因为如果字符串位于要计算的表达式中的任何位置,+表示concat)

例如


你能不能告诉我们哪一部分没有按预期工作,而不是把一堆代码扔到我们面前?多么简单可笑。谢谢。这让我省去了很多挫折。
var x = 5;
var y = 6;

console.log('Sum: ' + x + y);   // 56

console.log('Sum: ' + (x + y)); // 11