私は、 Javascriptを理解し、 Javascript: TheGoodPartsをもう一度読むことを試みることに一歩前進することにしました。そして、ここに最初の疑問があります:
グローバル変数は悪であるため、使用を避けたいとしましょう。そのため、次のようになります。
var digit_name = function(n) {
var names = ['zero','one','two','three'];
return names[n];
}
D.Crockfordは、関数が呼び出されるたびにの新しいインスタンス化が行われるため、これは遅いと主張していnames
ます。それで、彼はこれを行うことによってクロージャーソリューションに移動します:
var digit_name = function () {
var names = ['zero', 'one', 'two', 'three'];
return function (n) {
return names[n];
}
}();
これにより、names
変数がメモリに格納されるため、を呼び出すたびにインスタンス化されるわけではありませんdigit_name
。
理由を知りたいですか?と呼ぶときdigit_name
、なぜ最初の行が「無視される」のですか?私は何が欠けていますか?ここで実際に何が起こっているのですか?
私はこの例を本だけでなく、このビデオにも基づいています(26分)
(誰かがより良いタイトルを考えている場合は、必要に応じて提案してください...)