2
は考える:なぜクロージャで定義された同じ変数にアクセスするよりも、(refとして)変数を渡すのが遅いのですか?
(function() {
var items = [1, 2, 3, 4];
// In Chrome, this takes ~8-10 ms to execute.
for(var i = 0; i < items.length; i++) {
x(items);
}
// In Chrome, this takes 1-2 ms to execute.
for(var i = 0; i < items.length; i++) {
y();
}
function x(y) {
y[0] = -100;
}
function y() {
items[0] = 100;
}
})();
なぜXへの呼び出し()Y(への呼び出しよりも遅く8-10倍)がありますか? y()の実行時に可変解像度が必要ないためですか?
? –
クロムの開発コンソールの設定で 'Show timestamps'フラグがセットされているので、それぞれのforループの前と後に' console.log(new Date()); 'を追加し、時差を観察しました。 –
@ digita1-anal0gコードをプロファイルするには 'console.time'と' console.timeEnd'を使うべきです。 – idmean