diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/1.js b/1.js new file mode 100644 index 0000000..4f6eddd --- /dev/null +++ b/1.js @@ -0,0 +1,14 @@ +const WindowsVersion = { + name: 'Windows 7', + version: '6.1', + year: 2009, + developer: 'Microsoft Corporation', +}; + +getObjectValues(WindowsVersion); + +function getObjectValues(obj) { + for (var key in obj) { + console.log(key + ' = ' + obj[key]); + } +} diff --git a/2.js b/2.js new file mode 100644 index 0000000..d8891c8 --- /dev/null +++ b/2.js @@ -0,0 +1,16 @@ +const WindowsVersion = { + name: 'Windows 7', + version: '6.1', + year: 2009, + developer: 'Microsoft Corporation', +}; + +console.log(isProperty(WindowsVersion, 'developer')); + +function isProperty(object, property) { + if (object.hasOwnProperty(property)) { + return true; + } else { + return false; + } +} diff --git a/3.js b/3.js new file mode 100644 index 0000000..e1e0693 --- /dev/null +++ b/3.js @@ -0,0 +1,5 @@ +const myObj = newObject(); + +function newObject() { + return new Object(); +} diff --git a/4.js b/4.js new file mode 100644 index 0000000..d6470f9 --- /dev/null +++ b/4.js @@ -0,0 +1,25 @@ +function ElectricalAppliance(name, power) { + this.name = name; + this.power = power; + this.isPlugged = false; +} // метод, который определяет прибор как включенный в розетку + +ElectricalAppliance.prototype.plugIn = function() { + console.log(this.name + " is plugged!"); + this.isPlugged = true; +} + +ElectricalAppliance.prototype.getPowerUsed = function() { + return this.isPlugged ? this.power : 0; +} + +const lampa = new ElectricalAppliance('lampa', 45); +const tv = new ElectricalAppliance('tv', 1000); + +console.log(lampa.getPowerUsed() + tv.getPowerUsed()); + +lampa.plugIn(); +console.log(lampa.getPowerUsed() + tv.getPowerUsed()); + +tv.plugIn(); +console.log(lampa.getPowerUsed() + tv.getPowerUsed()); diff --git a/5.js b/5.js new file mode 100644 index 0000000..04232ce --- /dev/null +++ b/5.js @@ -0,0 +1,31 @@ +class ElectricalAppliance +{ + constructor(name, power) + { + this.name = name; + this.power = power; + this.isPlugged = false; + } + + plugIn() + { + console.log(this.name + " is plugged!"); + this.isPlugged = true; + } + + getPowerUsed() + { + return this.isPlugged ? this.power : 0; + } +} + +const lampa = new ElectricalAppliance('lampa', 45); +const tv = new ElectricalAppliance('tv', 1000); + +console.log(lampa.getPowerUsed() + tv.getPowerUsed()); + +lampa.plugIn(); +console.log(lampa.getPowerUsed() + tv.getPowerUsed()); + +tv.plugIn(); +console.log(lampa.getPowerUsed() + tv.getPowerUsed()); diff --git a/README.md b/README.md new file mode 100644 index 0000000..ac2b18b --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +Задание 1. +Написать, функцию, которая принимает в качестве аргумента объект и выводит в консоль все ключи и значения только собственных свойств. Данная функция не должна возвращать значение. + +Задание 2. +Написать функцию, которая принимает в качестве аргументов строку и объект, а затем проверяет есть ли у переданного объекта свойство с данным именем. Функция должна возвращать true или false. + +Задание 3. +Написать функцию, которая создает пустой объект, но без прототипа. + +Задание 4. +Реализуйте следующее консольное приложение подобно примеру, который разбирался в видео. Реализуйте его на прототипах. +Определите иерархию электроприборов. Включите некоторые в розетку. Посчитайте суммарную потребляемую мощность всех включенных приборов (передайте аргумент). +Таких приборов должно быть как минимум два (например, настольная лампа и компьютер). Выбрав прибор, подумайте, какими свойствами он обладает. + +Задание 5. +Переписать консольное приложение из предыдущего юнита на классы.