gpt4 book ai didi

javascript - 这些脚本之间的效率有差异吗?

转载 作者:行者123 更新时间:2023-11-28 09:59:37 24 4
gpt4 key购买 nike

理论案例。 函数init ()可能并不总是在页面上调用。我想知道的是,从速度/效率的 Angular 来看,这两个脚本是否存在差异?事实上Class单例会对加载速度/处理量产生影响吗?

脚本1:

// Class is a singleton.
var Class =
{
myFunctionOne : function ()
{
}

myFunctionTwo: function ()
{
}
}

function init ()
{
//Do some fancy stuff

Class.myFunctionOne();
Class.myFunctionTwo();
}

脚本2:

function Class ()
{
this.myFunctionOne = function ()
{
}

this.myFunctionTwo = function ()
{
}
}

function init ()
{
var myClass = new Class();

//Do some fancy stuff

myClass.myFunctionOne();
myClass.myFunctionTwo();
}

最佳答案

我想说是的,当 init() 时,你的第二个脚本具有性能优势。页面上被调用。这就是原因。

在第一个示例中,每次加载页面时都会解析对象文字:

var Class =
{
myFunctionOne : function () { ... }
}

Class将构建对象,每个键设置为一个函数对象。无论这些“方法”是否被实际调用,都会产生这种开销(不过,某些 JavaScript 编译器可能会在这里实现优化,例如“即时编译”,因此实际的性能增益可能会因浏览器而异)

在第二个示例中:

function Class ()
{
this.myFunctionOne = function () { ... }
}

myFunctionOne每次都在运行线路 Class正在被调用,在您的情况下,通过 new运算符(operator)。每次都会产生这个费用Class被实例化而不是每次页面加载一次。不过,您已经声明此类使用单例模式,因此无论如何您都只有一个实例。

关于javascript - 这些脚本之间的效率有差异吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9382156/

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