简体   繁体   中英

Why it keeps saying that my object is not a function?

I don't know what's happeing, i just changed all of this to functions and now it don't work and i can't figure out why.

I got object with exercises, at this moment i got only one exercise so click 1 when prompt appear, this should run Zadania.zad1 (eng. Exercises.exc1) but somehow it says that Zadania.zad1 isn't a function.

 (function(){ Zadania = {}; wybierzZadanie(); function wybierzZadanie() { do { var numer_zadania = parseInt(prompt("Podaj numer zadania (click 1 right now and look at a failure xD sry im from poland)")); } while(numer_zadania <= 0 || !numer_zadania); switch(numer_zadania) { case 1: Zadania.zad1() break; case 2: Zadania.zad2() break; case 3: Zadania.zad3() break; case 4: Zadania.zad4() break; case 5: Zadania.zad5() break; case 6: Zadania.zad6() break; case 7: Zadania.zad7() break; case 8: Zadania.zad8() break; } } Zadania.zad1 = function() { console.log("Zadanie numer 1"); var arg = []; var najwieksza = -Infinity; var najmniejsza = Infinity; do { var doTablicy = prompt("Podaj pojedynczo liczby i zatwierdzaj enterem (0 kończy wpisywanie)"); if(doTablicy.length != 1) { alert("Podaj liczby pojedynczo"); } else if(typeof(parseInt(doTablicy)) == "number") { arg.push(doTablicy); } } while(doTablicy != 0); for(let i = 0; i <= arguments.length-1; i++) { if(i == 0) { najwieksza = arguments[i]; } else if(arguments[i] > najwieksza) najwieksza = arguments[i]; } for(let i = 0; i <= arguments.length-1; i++) { if(i == 0) { najmniejsza = arguments[i]; } else if(arguments[i] < najmniejsza) najwieksza = arguments[i]; } alert("Z liczb: " + arguments + " najmniejsza liczba to: " + najmniejsza + " a największa to: " + najwieksza); wybierzZadanie(); } })();
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Zadania</title> <script type="text/javascript" src="zadania.js"></script> </head> <body> </body> </html>

You are calling the wybierzZadanie function before you defined Zadania.zad1. Try this instead:

 (function(){ Zadania = {}; function wybierzZadanie() { do { var numer_zadania = parseInt(prompt("Podaj numer zadania (click 1 right now and look at a failure xD sry im from poland)")); } while(numer_zadania <= 0 || !numer_zadania); switch(numer_zadania) { case 1: Zadania.zad1() break; case 2: Zadania.zad2() break; case 3: Zadania.zad3() break; case 4: Zadania.zad4() break; case 5: Zadania.zad5() break; case 6: Zadania.zad6() break; case 7: Zadania.zad7() break; case 8: Zadania.zad8() break; } } Zadania.zad1 = function() { console.log("Zadanie numer 1"); var arg = []; var najwieksza = -Infinity; var najmniejsza = Infinity; do { var doTablicy = prompt("Podaj pojedynczo liczby i zatwierdzaj enterem (0 kończy wpisywanie)"); if(doTablicy.length != 1) { alert("Podaj liczby pojedynczo"); } else if(typeof(parseInt(doTablicy)) == "number") { arg.push(doTablicy); } } while(doTablicy != 0); for(let i = 0; i <= arguments.length-1; i++) { if(i == 0) { najwieksza = arguments[i]; } else if(arguments[i] > najwieksza) najwieksza = arguments[i]; } for(let i = 0; i <= arguments.length-1; i++) { if(i == 0) { najmniejsza = arguments[i]; } else if(arguments[i] < najmniejsza) najwieksza = arguments[i]; } alert("Z liczb: " + arguments + " najmniejsza liczba to: " + najmniejsza + " a największa to: " + najwieksza); wybierzZadanie(); } wybierzZadanie(); })();
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Zadania</title> <script type="text/javascript" src="zadania.js"></script> </head> <body> </body> </html>

Cześć! You need to move wybierzZadanie(); line to the end of the script, because at the moment you call it it is undefined yet. So Zadania.zad1 = function() {... should be before you call wybierzZadanie() .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM