返回JavaScript对象的属性我只是碰到这个奇怪的问题,在IE8来了,我似乎无法找到任何关于它的更多细节。当然,如果我创建了一个JavaScript对象,但我这样做,我可以简单地通过动态定义它们添加属性:IE8无法添加的窗口
var rect = {};
rect.x = 200;
大。井IE8(我不知道其他IE的),如果我叫这样的方法:“对象不支持此属性或方法”
var span = document.getElementById('my-span');
var rect = span.getBoundingClientRect();
rect.x = Math.round(rect.left);
然后我得到的IE错误这当然不会在第一种情况下发生,我提到我在JavaScript中亲自定义了自己的对象。现在最简单的解决方法是做到这一点:
var clientRect = span.getBoundingClientRect();
var rect = { top: clientRect.top, left: clientRect.left, right: clientRect.right, bottom: clientRect.bottom };
rect.x = Math.round(rect.left);
这没问题。但我想知道为什么是不会IE8让我动态添加字段/属性/属性(我不知道正确的JS术语)由getBoundingClientRect()
方法返回此对象吗?是否有另一种(正确的)方法来添加属性?对于由window
对象的方法返回的所有对象是否会发生这种情况?这是记录的吗?或者它是一个错误? (在这种情况下,我会采取解决方法并继续前进)。
第一个问题:是不是只读? – ArtOfCode 2014-10-09 15:54:06
答案是肯定的。 – ArtOfCode 2014-10-09 15:57:34
@Bergi我想他的意思是getBoundingClientRect的'结果()'似乎是只读 – Ian 2014-10-09 16:02:17