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

时间:2017-10-11 21:34:42

标签: javascript

我不知道发生了什么,我只是将所有这些改为功能,现在它不起作用,我无法弄清楚原因。

我通过练习获得了对象,此时我只进行了一次练习,因此当出现提示时单击1,这应该运行Zadania.zad1(eng.Stempleises.exc1),但不知何故它说Zadania.zad1不是' ta功能



(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();
	}
})();
&#13;
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Zadania</title>
	<script type="text/javascript" src="zadania.js"></script>
</head>
<body>

</body>
</html>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

在定义Zadania.zad1之前,您正在调用wybierzZadanie函数。试试这个:

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

答案 1 :(得分:0)

Cześć!您需要将wybierzZadanie();行移动到脚本的末尾,因为在您调用它时,它尚未定义。因此Zadania.zad1 = function() {...应该在您致电wybierzZadanie()之前。