2017-10-11 61 views
-1

我不知道发生了什么事,我只是将所有这些改成了函数,现在它不起作用,我不知道为什么。为什么一直说我的对象不是函数?

我得到了练习的对象,此时我只有一个练习,所以点击1出现提示时,应该运行Zadania.zad1(eng. Exercises.exc1),但不知何故它说Zadania.zad1不是一个功能。

(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

你在哪里定义* Zadania.zad2()* ?? –

+0

当您执行'wybierzZadanie()'时,'Zadania.zad1'尚未分配。 – cFreed

+0

因为代码在定义之前调用'wyberzZandie'时会运行,所以它可能看起来很混乱......这里有一个很好的解释:https://stackoverflow.com/a/261682/691969 – Trey

回答

0

Cześć!您需要将wybierzZadanie();行移动到脚本的末尾,因为目前您称之为尚未定义。所以Zadania.zad1 = function() {...应该在你拨打wybierzZadanie()之前。

1

您呼叫的wybierzZadanie功能您定义Zadania.zad1之前。试试这个:

(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>

相关问题