【发布时间】:2011-07-07 17:23:06
【问题描述】:
var name = function(n) {
var digits = ['one','two','three','four'];
return digits[n];
}
var namenew = (function() {
digits = ['one','two','three','four'];
return function(n) {
return digits[n];
}
}());
两个版本的输出相同,但是据说第二个版本比第一个版本快得多。
据我了解,第一个版本每次都会执行该函数,而第二个版本存储执行结果。这就是让我作为功能/常规 OOPS 程序员感到困惑的地方。
如何保存具有内部上下文的函数?引擎盖下发生了什么?有人可以澄清一下吗?
【问题讨论】:
-
它正在创建一个包含数字列表的对象,以及一个方法。
标签: javascript performance closures