国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

JavaScript-Problem bei der Rückgabe des Werts eines Funktionsarrays
為情所困
為情所困 2017-05-19 10:30:05
0
3
567

Als ich das Abschlussproblem von js lernte, habe ich die Codebeispiele für die fortgeschrittene js-Programmierung getippt und damit experimentiert, aber die Ergebnisse waren nicht konsistent und ich konnte es nicht herausfinden.

function createFunction(){
    var result = new Array();
    for (var i = 0; i < 10; i++) {
        result[i] = function(){
        // console.log(i);
            return i;
        };
    }
    return result;
}

Das Ergebnis dieses Codes sollte ein Array sein, jeder Wert ist 10, aber nach Experimenten im Browser habe ich herausgefunden, dass es sich bei dem, was zurückgegeben wird, um ein Array von Funktionen handelt.

Warum wird kein numerisches Array zurückgegeben?

為情所困
為情所困

Antworte allen(3)
僅有的幸福

是一個(gè)函數(shù)數(shù)組,每個(gè)函數(shù)雖然都有返回值 i ,不過(guò)這個(gè)函數(shù)并沒(méi)有執(zhí)行。
你仔細(xì)看書(shū)的 181 頁(yè),代碼下面第一句話。

這個(gè)函數(shù)會(huì)返回一個(gè)函數(shù)數(shù)組。

之前我看到這兒的時(shí)候也有一點(diǎn)疑惑,感覺(jué)應(yīng)該直接全部返回 10 才更直觀。后來(lái)想了想,如果直接在返回的函數(shù)后面加()執(zhí)行的話,就相當(dāng)于每次都創(chuàng)建一個(gè)立即執(zhí)行函數(shù),返回的 i 就是每次正常的索引值,起不到該有的效果。

function createFunction(){
    var result = new Array();
    for (var i = 0; i < 10; i++) {
        result[i] = function(){
            return i;
        }();
    }
    return result;
}
createFunction()    //[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
漂亮男人

因?yàn)槟阒皇前押瘮?shù)賦給數(shù)組元素,并沒(méi)有調(diào)用這些函數(shù)。

function createFunction(){
    var result = new Array();
    for (var i = 0; i < 10; i++) {
        result[i] = (function(){
            return i;
        })();
    }
    return result;
}
洪濤

result 作為數(shù)組,其元素是函數(shù)。

所以就會(huì)有你這個(gè)情況

如果想要得到你想要的全部是 10 ,只需要遍歷這個(gè)數(shù)組并調(diào)用作為數(shù)組元素的函數(shù),把返回值 log 出來(lái)

createFunction().forEach(fn => console.log(fn())); 

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage