gpt4 book ai didi

javascript - 大量时间花在js中的pass对象上

转载 作者:行者123 更新时间:2023-12-02 17:55:28 25 4
gpt4 key购买 nike

我写的函数是这样的

function isSupport(Element)
{
//do something
}

元素是一个名为“Element”的对象。“Element”有一些子类,如“Instance”、“symbol”等。当我将“Element”的子类传递给这个函数时。我发现它会花费我需要 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() 和第二次调用 getTimepass() 的间隔一般为 0.003s。

最佳答案

JS中精确的时间间隔

请注意,Date 对象不是很精确。

如果你想要精度,你应该使用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 中,对象并不直接存储在变量中:变量仅包含对对象的引用。然后,当您将对象传递给函数时,您仅传递引用。

关于javascript - 大量时间花在js中的pass对象上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20986035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com