2017-10-11 4 views
-1

Ich weiß nicht, was passiert ist, ich habe nur all dies zu Funktionen geändert und jetzt funktioniert es nicht und ich kann nicht herausfinden, warum.Warum sagt es immer, dass mein Objekt keine Funktion ist?

Ich habe Objekt mit Übungen, in diesem Moment habe ich nur eine Übung, so klicken Sie auf 1, wenn Prompt erscheint, sollte dies Zadania.zad1 (ger. Exercises.exc1) laufen, aber irgendwie heißt es, dass Zadania.zad1 ist kein Funktion.

(function(){ 
 
\t Zadania = {}; 
 

 
\t wybierzZadanie(); 
 

 
\t function wybierzZadanie() { 
 
\t \t do { 
 
\t \t \t var numer_zadania = parseInt(prompt("Podaj numer zadania (click 1 right now and look at a failure xD sry im from poland)")); 
 
\t \t } while(numer_zadania <= 0 || !numer_zadania); 
 

 
\t \t switch(numer_zadania) { 
 
\t \t \t case 1: Zadania.zad1() 
 
\t \t \t break; 
 

 
\t \t \t case 2: Zadania.zad2() 
 
\t \t \t break; 
 

 
\t \t \t case 3: Zadania.zad3() 
 
\t \t \t break; 
 

 
\t \t \t case 4: Zadania.zad4() 
 
\t \t \t break; 
 

 
\t \t \t case 5: Zadania.zad5() 
 
\t \t \t break; 
 

 
\t \t \t case 6: Zadania.zad6() 
 
\t \t \t break; 
 

 
\t \t \t case 7: Zadania.zad7() 
 
\t \t \t break; 
 

 
\t \t \t case 8: Zadania.zad8() 
 
\t \t \t break; 
 
\t \t } 
 
\t } 
 

 
\t Zadania.zad1 = function() { 
 
\t \t console.log("Zadanie numer 1"); 
 

 
\t \t var arg = []; 
 
\t \t var najwieksza = -Infinity; 
 
\t \t var najmniejsza = Infinity; 
 

 
\t \t do { 
 
\t \t \t var doTablicy = prompt("Podaj pojedynczo liczby i zatwierdzaj enterem (0 kończy wpisywanie)"); 
 

 
\t \t \t if(doTablicy.length != 1) { 
 
\t \t \t \t alert("Podaj liczby pojedynczo"); 
 
\t \t \t } else if(typeof(parseInt(doTablicy)) == "number") { 
 
\t \t \t \t arg.push(doTablicy); 
 
\t \t \t } 
 

 
\t \t } while(doTablicy != 0); 
 

 
\t \t for(let i = 0; i <= arguments.length-1; i++) { 
 
\t \t \t if(i == 0) { 
 
\t \t \t \t najwieksza = arguments[i]; 
 
\t \t \t } else if(arguments[i] > najwieksza) najwieksza = arguments[i]; 
 
\t \t } 
 

 
\t \t for(let i = 0; i <= arguments.length-1; i++) { 
 
\t \t \t if(i == 0) { 
 
\t \t \t \t najmniejsza = arguments[i]; 
 
\t \t \t } else if(arguments[i] < najmniejsza) najwieksza = arguments[i]; 
 
\t \t } 
 

 
\t \t alert("Z liczb: " + arguments + " najmniejsza liczba to: " 
 
\t \t \t + najmniejsza + " a największa to: " + najwieksza); 
 

 
\t \t wybierzZadanie(); 
 
\t } 
 
})();
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <meta charset="utf-8"> 
 
\t <title>Zadania</title> 
 
\t <script type="text/javascript" src="zadania.js"></script> 
 
</head> 
 
<body> 
 

 
</body> 
 
</html>

+0

Wo definieren Sie * Zadania.zad2() * ?? –

+0

'Zadania.zad1' ist noch nicht zugewiesen, wenn Sie' wybierzZadanie() 'ausführen. – cFreed

+0

Da Ihr Code beim Aufrufen von 'wyberzZandie' vor seiner Definition ausgeführt wird, könnte es verwirrend erscheinen ... Hier gibt es eine gute Erklärung für dieses Verhalten: https://stackoverflow.com/a/261682/691969 – Trey

Antwort

0

Cześć! Sie müssen die Zeile wybierzZadanie(); an das Ende des Skripts verschieben, da Sie es im Moment noch nicht definiert haben. So sollte Zadania.zad1 = function() {... vor dem Anruf wybierzZadanie() sein.

1

Sie rufen die wybierzZadanie Funktion, bevor Sie Zadania.zad1 definiert. Versuchen Sie stattdessen:

(function(){ 
 
\t Zadania = {}; 
 

 
\t function wybierzZadanie() { 
 
\t \t do { 
 
\t \t \t var numer_zadania = parseInt(prompt("Podaj numer zadania (click 1 right now and look at a failure xD sry im from poland)")); 
 
\t \t } while(numer_zadania <= 0 || !numer_zadania); 
 

 
\t \t switch(numer_zadania) { 
 
\t \t \t case 1: Zadania.zad1() 
 
\t \t \t break; 
 

 
\t \t \t case 2: Zadania.zad2() 
 
\t \t \t break; 
 

 
\t \t \t case 3: Zadania.zad3() 
 
\t \t \t break; 
 

 
\t \t \t case 4: Zadania.zad4() 
 
\t \t \t break; 
 

 
\t \t \t case 5: Zadania.zad5() 
 
\t \t \t break; 
 

 
\t \t \t case 6: Zadania.zad6() 
 
\t \t \t break; 
 

 
\t \t \t case 7: Zadania.zad7() 
 
\t \t \t break; 
 

 
\t \t \t case 8: Zadania.zad8() 
 
\t \t \t break; 
 
\t \t } 
 
\t } 
 

 
\t Zadania.zad1 = function() { 
 
\t \t console.log("Zadanie numer 1"); 
 

 
\t \t var arg = []; 
 
\t \t var najwieksza = -Infinity; 
 
\t \t var najmniejsza = Infinity; 
 

 
\t \t do { 
 
\t \t \t var doTablicy = prompt("Podaj pojedynczo liczby i zatwierdzaj enterem (0 kończy wpisywanie)"); 
 

 
\t \t \t if(doTablicy.length != 1) { 
 
\t \t \t \t alert("Podaj liczby pojedynczo"); 
 
\t \t \t } else if(typeof(parseInt(doTablicy)) == "number") { 
 
\t \t \t \t arg.push(doTablicy); 
 
\t \t \t } 
 

 
\t \t } while(doTablicy != 0); 
 

 
\t \t for(let i = 0; i <= arguments.length-1; i++) { 
 
\t \t \t if(i == 0) { 
 
\t \t \t \t najwieksza = arguments[i]; 
 
\t \t \t } else if(arguments[i] > najwieksza) najwieksza = arguments[i]; 
 
\t \t } 
 

 
\t \t for(let i = 0; i <= arguments.length-1; i++) { 
 
\t \t \t if(i == 0) { 
 
\t \t \t \t najmniejsza = arguments[i]; 
 
\t \t \t } else if(arguments[i] < najmniejsza) najwieksza = arguments[i]; 
 
\t \t } 
 

 
\t \t alert("Z liczb: " + arguments + " najmniejsza liczba to: " 
 
\t \t \t + najmniejsza + " a największa to: " + najwieksza); 
 

 
\t \t wybierzZadanie(); 
 
\t } 
 

 
\t wybierzZadanie(); 
 
})();
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <meta charset="utf-8"> 
 
\t <title>Zadania</title> 
 
\t <script type="text/javascript" src="zadania.js"></script> 
 
</head> 
 
<body> 
 

 
</body> 
 
</html>

Verwandte Themen