2016-03-29 3 views
4
undefined

ich mit der Nummer Objekt wurde liebäugelt und ich kam mit diesem Code (ich weiß, das ist keine gute Praxis ist):Typeerror: (Zwischenwert) (...) ist

Number.prototype.times = function (evalString) { 
    for (let i = 0; i < this; i++) { 
    eval(evalString); 
    } 
} 
//var someVar= 3; 
(8).times("alert('kek')"); 

und es scheint, funktioniert nur, wenn die Variable someVar nicht auskommentiert ist, andernfalls wird der Fehler im Titel ausgegeben.

Was verursacht dieses Verhalten?

Antwort

7

Platzierung (...) unmittelbar nach einem Funktionsausdruck (function (evalString) { … }) wird Aufruf die Funktion mit den Argumenten, die Sie angeben.

Dies ist der Grund, warum das automatische Einfügen von Semikolon nicht empfohlen wird. Beenden Sie Ihre Aussagen immer mit einem ;.

+0

Nicht von einigen empfohlen * –

+3

@RayonDabre - "Nicht auf automatische Semikolon einfügen" – Quentin

+0

Ich verstehe nicht. Ich habe diese drei Punkte ('...') nicht in der Zeile. Aber ich habe diesen Fehler bekommen. Ich beende auch immer die Anweisungen mit ';'. Oder muss ich ';' in jede Zeile setzen? –

Verwandte Themen