Javascript 在js中花很多时间在pass对象上

Javascript 在js中花很多时间在pass对象上,javascript,Javascript,我写函数像 function isSupport(Element) { //do something } 该元素是一个名为“Element”的对象,“Element”有一些子类,如“Instance”、“symbol”等。当我将“Element”的子类传递给该函数时,我发现跳转到该函数需要花费0.002s-0.003s;在javascript中传递对象是常见的吗?我怀疑我是否复制了一个“元素” 到底是什么原因 谢谢 我使用以下代码来显示经过的时间: function getTimePa

我写函数像

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()中

getTimepass()的第一次调用和第二次调用的时间间隔通常为0.003s。

JS中的精确时间间隔 请注意,
Date
对象不是很精确

如果您想要预览,应该使用API():

函数调用是昂贵的 请参见第10-19页的幻灯片

将对象传递给函数 是的,在JavaScript中,将对象传递给函数是很常见的


不,您的对象没有被复制。事实上,在JavaScript中,对象并不直接存储在变量中:变量只包含对对象的引用。然后,当你把一个对象传递给一个函数时,你只传递引用。

你是如何测量函数在0.002s~0.003s之后被调用的时间的?在调用你的函数之前,你能确定元素对象已经准备好了吗?元素对象是其他程序的内部对象。它总是准备好调用我的函数。谢谢!我认为时间是花在函数调用上的:-)
function isSupport(Element)
{
    getTimePass();
    //to do
    getTimePass();
}
var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")