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