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];
}
}());
這兩個版本都會產生相同的輸出,但是據說第二個版本比第一個版本快得多。關閉Javascript性能
據我所知,第一個版本每次都執行函數,第二個版本存儲執行結果。這就是我作爲一個功能/定期OOPS程序員的混淆。
如何保存一個函數的內部上下文?引擎蓋下發生了什麼?有人可以澄清一下嗎?
它創建一個包含數字列表中的對象,再加上方法。 –