简体   繁体   English

为什么一直说我的对象不是函数?

[英]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.我得到了练习对象,此时我只有一个练习,所以在出现提示时单击 1,这应该运行 Zadania.zad1 (eng. Exercises.exc1) 但不知何故它说 Zadania.zad1 不是一个函数。

 (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.您在定义 Zadania.zad1 之前调用了wybierzZadanie函数。 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();你需要移动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() .所以Zadania.zad1 = function() {...应该在你调用wybierzZadanie()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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