location.href属性与location.assign()方法

在使用location.href = url而不是location.assign(url)之间的JavaScript内存消耗有什么特别的优势/劣势?

我想我想知道是否需要更多的内存来访问该方法,而不是设置属性。

我总是使用,从来没有问题:

 location.href = url; 

调用一个函数应该比访问属性稍慢,但在内存方面,我的愚见不应该有很大的差异

我个人更喜欢调用函数,因为调用一个函数给我一个更好的印象,即某个东西正在运行,这不仅是一个正在改变的variables的值。

但可能是的,这可能是真实的location.href = url;location.assign(url)快,尽pipe它可能取决于JavaScript引擎的实现,请参阅我刚刚创build的testing 。

对于Windows Server 2008 R2 / 7 64位上的32位Chrome 40.0.2214.93,我的计算机/浏览器http://jsperf.com/location-href-vs-location-assign/2进行了testing

location.assign比location.href慢15%。

在使用location.href = url而不是location.assign(url)之间的JavaScript内存消耗有什么特别的优势/劣势?

没有

没有什么区别。

这样做的原因是简单的。 每当您的浏览器加载一个新页面,它就会启动一个全新的JavaScript“VM”,并在该VM中运行该页面的脚本。 在运行你的问题中的任何一个语句时,你都要指示浏览器加载一个新页面,这意味着销毁当前的虚拟机(并释放与其相关的内存),并为新页面加载一个全新的虚拟机。

除了任何奇怪的浏览器错误,净效果总是相同的。 您的脚本正在运行一个全新的虚拟机,具有完全相同的内存消耗。