JavaScript是否会评估属性';如果为';这不是任务陈述的一部分吗?

JavaScript是否会评估属性';如果为';这不是任务陈述的一部分吗?,javascript,browser,cross-browser,variables,evaluation,Javascript,Browser,Cross Browser,Variables,Evaluation,我遇到了一个相当模糊的问题,在浏览器应用样式之前测量文档的高度。更多信息请点击此处: 在6月27日Dave Hyatt的评论中,他建议只需检查document.body.offsetLeft属性即可强制Safari进行回流 我是否可以简单地使用以下语句: document.body.offsetLeft; 或者我是否需要将其分配给变量,例如: var force_layout = document.body.offsetLeft; 为了让浏览器计算该值 我认为这可以归结为一个更基本的

我遇到了一个相当模糊的问题,在浏览器应用样式之前测量文档的高度。更多信息请点击此处:

在6月27日Dave Hyatt的评论中,他建议只需检查
document.body.offsetLeft
属性即可强制Safari进行回流

我是否可以简单地使用以下语句:

document.body.offsetLeft;
或者我是否需要将其分配给变量,例如:

var force_layout = document.body.offsetLeft;
为了让浏览器计算该值


我认为这可以归结为一个更基本的问题——即,如果不作为赋值语句的一部分,JavaScript还会计算属性的值吗?这是否取决于特定浏览器的JavaScript引擎是否优化了代码?

仍将对该语句进行评估

Property Accessors | | v v document.body.offsetLeft; ^ |- Identifier Reference 注意:上述示例适用于IE9 Pre、Firefox 3.7alpha、Chrome 5和WebKit夜间版本

然后,以一个简单表达式为例,让getter调用:

obj.prop; // alerts "getter"

很好的解释!这是有道理的。我有一种预感,那就是正在发生的事情,但我不能把它说清楚。非常感谢,CMS!
obj.prop; // alerts "getter"