Oleg 6 lat temu
rodzic
commit
846540bc71
2 zmienionych plików z 0 dodań i 285 usunięć
  1. 0 12
      JS_13.02.2018/index.html
  2. 0 273
      JS_13.02.2018/script.js

+ 0 - 12
JS_13.02.2018/index.html

@@ -1,12 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="UTF-8">
-	<title>document</title>
-	<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
-	<script type="text/javascript" src="script.js"></script>
-</head>
-<body>
-
-</body>
-</html>

+ 0 - 273
JS_13.02.2018/script.js

@@ -1,273 +0,0 @@
-
-// 1. Создайте объект calculator с методами:
-	// read() запрашивает prompt для двух значений и сохраняет их как свойства объекта x, y
-	// sum() возвращает сумму этих двух значений
-	// multi() возвращает произведение этих двух значений
-	// diff() возвращает разницу
-	// div() возвращает частное
-
-
-var calculator = {
-	read: function() {
-		this.x = +prompt("Введите Х", "");
-		this.y = +prompt("Введите У", "");
-	},
-	sum: function() {
-		return this.x + this.y;
-	},
-	multi: function() {
-		return this.x * this.y;
-	},
-	diff: function() {
-		return this.x - this.y;
-	},
-	div: function() {
-		return this.x / this.y;
-	}
-}
-
-calculator.read();
-alert( calculator.sum() );
-alert( calculator.multi() );
-alert( calculator.diff() );
-alert( calculator.div() );
-
-
-// 2. Создайте объект coffeeMachine со свойством message: ‘Your coffee is ready!’ 
-// и методом start(), при вызове которого – coffeeMachine.start() – через 3 секунды 
-// появляется окно с сообщением, записанным в свойстве объекта message.
-
-
-var coffeeMachine = {
-	message: "Your coffee is ready!",
-	start: function() {
-		that = this;
-		setTimeout( function() {
-			alert(that.message);
-		}, 3000);
-	}
-}
-
-coffeeMachine.start();
-
-// 3. Создайте функцию hello(), которая выводит приветствие пользователю. 
-// Создайте два объекта, содержащие поля firstname, lastname. Используя метод 
-// call и функцию hello() приветствуйте каждого из пользователей персонально.
-
-
-function hello() {
-	alert("Hello, " + this.getFullName());
-};
-
-var user_1 = {
-	firstname: "John",
-	lastname: "Johnson",
-	getFullName: function() {
-		return this.firstname + " " + this.lastname;
-	}
-};
-
-var user_2 = {
-	firstname: "Jack",
-	lastname: "Jackson",
-	getFullName: function() {
-		return this.firstname + " " + this.lastname;
-	}
-};
-
-hello.call(user_1);
-hello.call(user_2);
-
-
-
-// 4. Создайте объект counter с методами увеличения, уменьшения значения 
-// счетчика и методом возврата текущего значения. Используйте концепцию 
-// chaining для создания цепочки вызовов.
-
-var counter = {
-	count: 0,
-	inc: function() {
-		this.count++;
-		return this;
-	},
-	dec: function() {
-		this.count--;
-		return this;
-	},
-	getValue: function() {
-		return this.count;
-	}
-}
-
-var current = counter.inc().inc().dec().inc().dec().getValue();
-alert(current);
-
-
-// 5. Создайте объект с данными: x, y и методами: getSum, getSum, getMulti, getDiv. 
-// Методы объекта ничего не реализуют, а только выводят в alert сообщения вида 
-// ‘1 + 1 = 2’ или ‘1 / 0 = Infinity’. Для расчетов все методы используют функционал 
-// ранее созданного калькулятора.
-
-var calculator = {
-	read: function() {
-		this.x = +prompt("Введите Х", "");
-		this.y = +prompt("Введите У", "");
-	},
-	sum: function() {
-		return this.x + this.y;
-	},
-	multi: function() {
-		return this.x * this.y;
-	},
-	diff: function() {
-		return this.x - this.y;
-	},
-	div: function() {
-		return this.x / this.y;
-	}
-}
-
-var object = {
-	x: +prompt("Введите Х", ""),
-	y: +prompt("Введите Y", ""),
-	getSum: function() {
-		var sum = calculator.sum;
-		return alert(this.x + "+" + this.y + "=" + sum.call(object));
-	},
-	getDiff: function() {
-		var diff = calculator.diff;
-		return alert(this.x + "-" + this.y + "=" + diff.call(object));
-	},
-	getMulti: function() {
-		var multi = calculator.multi;
-		return alert(this.x + "*" + this.y + "=" + multi.call(object));
-	},
-	getDiv: function() {
-		var div = calculator.div;
-		return alert(this.x + "/" + this.y + "=" + div.call(object));
-	}
-}
-
-
-
-
-// 6. Придумайте алгоритм расчета суммы всех фактических параметров функции 
-// с использованием только рекурсии:
-
-var sum = 0;
-	
-function getSum(a, b, ...other) {
-
-	if (arguments.length >= 2) {
-		sum = a + b;
-		return getSum(sum, ...other);
-	} else {
-		return a;
-	}
-};
-
-getSum(1,2,3,4,5);
-
-
-// 7. Создайте объект со свойством delay и методами appendTo и appendText. 
-// Метод appendTo с помощью jQuery добавляет абзац в контейнер, переданный в 
-// параметре метода. Метод appendText может дописывает текст в добавленный элемент. 
-// Создайте массив строк и запустите цикл по этому массиву. С периодичностью, 
-// определенной в свойстве delay, в текст добавленного html-элемента добавляется 
-// соответствующий по порядку элемент массива. Учтите, что для доступа к вашему 
-// элементу не должен производиться поиск по DOM-дереву.
-
-var arr = ["Hello,", "World!", "This", "is", "some", "text"];
-
-var object = {
-	delay: 1000,
-	appendTo: function(par) {
-		$(par).append("<p>");
-	},
-	appendText: function(str) {
-		$("p").append(str);
-	}
-};
-
-object.appendTo("body");
-
-for(var i = 0; i < arr.length; i++) {
-
-	(function(i) {
-		setTimeout(function() {
-			object.appendText(arr[i]+" ");
-		}, object.delay+i*1000)
-	})(i);	
-}
-
-
-
-// 8. Есть следующий код:
-
-var country = {
-    name: 'Ukraine',
-    language: 'ukrainian',
-    capital: {
-        name: 'Kyiv',
-        population: 2907817,
-        area: 847.66
-    }
-};
-
-function format(start, end) {
-    console.log(start + this.name + end);
-}
-
-format.call(country,"",""); // Ukraine
-format.apply(country, ["[", "]"]); // [Ukraine]
-format.call(country.capital,"",""); // Kyiv
-format.apply(country.capital, ["",""]); // Kyiv
-format.apply(null, [""]); // undefined
-
-
-
-
-// 9. Создайте объект user с полем name. Создайте функцию format с параметрами start и end.
-// Привяжите функцию format() к объекту user таким образом, чтобы ее вызов возвращал 
-// отформатированное имя пользователя.
-// Реализуйте 2 версии текущего задания, используя:
-// 1. Анонимную функцию;
-// 2. Метод bind().
-
-var user = {
-	name: "John"
-};
-
-function format(start, end) {
-    console.log(start + this.name + end);
-}
-
-// function() {
-// 	format("<<<", ">>>");
-// }
-
-var userFormat = format.bind(user);
-
-userFormat('<<<', '>>>');
-
-
-
-
-// 10. Напишите функцию concat, которая соединяет две строки, разделенные каким-то 
-// символом: разделитель и строки передаются в параметрах функции. Используя карринг, 
-// создайте новую функцию hello, которая которая выводит приветствие тому, кто передан 
-// в ее параметре
-
-function concat(str1, sep, str2) {
-
-	return console.log(str1+sep+str2);
-}
-
-var hello = concat.bind(null, "Hello", " ");
-
-hello('World'); 
-hello('John'); 
-
-
-
-