我在浏览WURFL.js源代码时,在页面底部看到了以下内容:
var logo=document.getElementById("hero"),heroText=document.getElementById("hero"), ...显然,变量logo和heroText引用的是同一个东西。这是不是给JavaScript中的DOM解析带来了不必要的开销(因为JavaScript每次都必须查找id hero )?显然,一个更有效的方法是:
var logo=document.getElementById("hero");
var heroText = logo;在这种情况下,heroText可以是另一个对象,也可以引用与logo相同的对象。我不知道是哪一个,因为我不知道JavaScript解释器是如何工作的(尽管我是一个C#用户,一个学习者)。
所以我的问题实际上是这样的:(我假设WURFL没有犯错误) JavaScript如何解释这两行?谢谢,提前说好。
发布于 2014-07-03 03:15:02
不同之处在于(如果它不返回DOM元素),如果您返回DOM元素
var getObj = function() { return {} };
var a = getObj();
var b = getObj();
a.test = 'hi';
console.log(b);
// Object {} 但如果你这样做了:
var getObj = function() { return {} };
var a = getObj();
var b = a;
a.test = 'hi';
console.log(b);
// Object {test: "hi"} 一个结果是两个唯一的对象,另一个是对同一对象的两个引用。
var a = document.getElementById('notify-container')
var b = document.getElementById('notify-container')
a.test = 'hi'
console.log(b.test);
//"hi"因此,在您展示的实例中,是的,这样做效率更高
var logo=document.getElementById("hero");
var heroText = logo;https://stackoverflow.com/questions/24539105
复制相似问题