我写的功能就像
function isSupport(Element)
{
//do something
}
元素是一个名为“元素”的对象。“元素”有一些子类,如“实例”,“符号”等等。当我将“元素”的子类传递给此函数时,我发现它会花费我0.002s - 0.003s跳转到函数;它是否通常在javascript中传递一个对象?我怀疑我复制了一个“元素”。
到底是什么原因?
谢谢!
我使用以下代码来显示时间:
function getTimePass()
{
var date1 = new Date();
var time1 = date1.getTime() - time ;
fl.trace("time passed" +time1/1000+"s");
}
fl.trace()是调试输出方法。 我衡量时间:
getTimePass();
isSupport(Elmement);
getTimePass();
同样在isSupport();
function isSupport(Element)
{
getTimePass();
//to do
getTimePass();
}
第一次调用getTimepass()和第二次调用它一般有0.003s间隔。
答案 0 :(得分:2)
请注意Date
个对象不是很精确。
如果您想要presision,您应该使用Performance API(performance.now()
):
var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")
见http://www.slideshare.net/madrobby/extreme-javascript-performance
的幻灯片10-19是的,在JavaScript中,将对象传递给函数是很常见的。
不,你的对象没有被复制。事实上,在JavaScript中,对象不直接存储在变量中:变量只包含对象的引用。然后,当您将对象传递给函数时,只传递引用。