gpt4 book ai didi

javascript - 哪个函数声明更快? var functionName 或 this.functionname

转载 作者:行者123 更新时间:2023-12-03 12:38:58 25 4
gpt4 key购买 nike

我正在研究 angularJs 并致力于 javascript 优化。我最近看了YUI创建者的一个视频,他是一位JavaScript专家,关于JavaScript优化。他解释了变量声明和作用域以及 JavaScript 的工作原理。以及 JavaScript 引擎如何从当前作用域到全局作用域查找变量等(引用: http://jonraasch.com/blog/10-javascript-performance-boosting-tips-from-nicholas-zakas )

我的问题是(不是特定于 angularjs):

当在我的 Controller 中我声明一个函数时,例如:

app.controller('Ctrl', function() {
var func1 = function() {
console.log("Hello");
}
this.func2 = function() {
console.log("World");
}

func1();
this.func2();
});

哪个函数应该更快?我知道这有点矫枉过正,但我​​有兴趣了解 javascript 引擎的工作原理。

最佳答案

就范围而言,这两者是相同的(它们都是本地的,而不是全局的)。区别在于功能:“this.func2”函数是“公共(public)”(您可以通过引用 Ctrl 对象的实例来调用该函数),而“var func1”是“私有(private)”函数。

就执行调用的速度而言,我在 jspref 上进行了这个小测试: http://jsperf.com/private-vs-public-speed-js

  Benchmark.prototype.setup = function() {
var obj = (function() {
this.f1 = function() {
console.log('a');
}
var f2 = function() {
console.log('a')
}
return {
f1: f1,
f2: f2
}
})();
};

“使用公共(public)方法”之间的比较obj.f1();到“使用私有(private)方法”obj.f2();大多数时候似乎没有表现出显着差异。

关于javascript - 哪个函数声明更快? var functionName 或 this.functionname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596207/

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