Code Monkey home page Code Monkey logo

goit-js-hw-05's Introduction

goit-js-hw-05

Задача 5-1//

function-constructor

Напиши функцию-конструктор Account, которая создает объект со свойствами login и email.

В prototype функции-конструктора добавь метод getInfo(), который возвращает строку со значениями свойств login и email объекта.////

\Задача 5-2

class

Напиши класс User для создания пользователя со следующим свойствами:

name - строка age - число followers - число Добавь метод getInfo(), который, выводит строку: User ${имя} is ${возраст} years old and has ${кол-во фоловеров} followers

//Задача 5-3

использование методов класса

Напиши класс Storage, который будет создавать объекты для управления складом товаров. При вызове будет получать один аргумент - начальный массив товаров, и записывать его в свойство items.

Добавь методы класса:

getItems() - возвращает массив текущих товаров addItem(item) - получает новый товар и добавляет его к текущим removeItem(item) - получает товар и, если он есть, удаляет его из текущих

///Задача 5-4

переиспользование методов класса

Напиши класс StringBuilder. На вход он получает один параметр - строку, которую записывает в свойство _value.

Добавь классу следующий функционал:

Геттер value - возвращает текущее значение поля _value Метод append(str) - получает параметр str (строку) и добавляет ее в конец _value Метод prepend(str) - получает параметр str (строку) и добавляет ее в начало value Метод pad(str) - получает параметр str (строку) и добавляет ее в начало и в конец _value Метод pad должен использовать методы append и prepend

//Задача 5-5

класс

Напиши класс Car с указанными свойствами и методами.

class Car { /*

  • Добавь статический метод
  • getSpecs(car), который принимает
  • объект-машину как параметр
  • и возвращает шаблонную строку
  • со свойствами и значениями объекта.
  • Свойства:
  • maxSpeed,
  • speed,
  • isOn,
  • distance,
  • price
  • Пример строки, полученной этим методом:
  • 'maxSpeed: 200, speed: 50, isOn: true, distance: 100, price: 2000' */

/*

  • Конструктор получает объект настроек.
  • Добавь свойства будущеего экземпляра класса:
  • speed - текущая скорость,
  •      начальное значение `0`
    
  • price - цена автомобиля
  • maxSpeed - максимальная скорость
  • isOn - заведен ли автомобиль.
  •     Значения `true` или `false`,
    
  •     начальное значение false
    
  • distance - пробег в километрах,
  •         начальное значение `0`
    
    */ constructor() {}

/*

  • Добавь геттер и сеттер
  • для свойства price, который будет
  • работать с свойством цены автомобиля.
  • ВАЖНО: для записи методов get и set
  • значение параметра записывают с
  • подчеркиванием. См. ниже пример 1. */

/*

  • Метод, который заводит автомобиль
  • Записывает в свойство isOn значение true */ turnOn() {}

/*

  • Метод, чтобы заглушить автомобиль
  • Этот метод должен записывать
  • в свойство isOn значение false,
  • и сбрасывать текущую скорость до 0 */ turnOff() {}

/*

  • Этот метод должен добавлять
  • к свойству speed полученное
  • значение, при условии,
  • что результирующая скорость
  • не больше чем значение свойства maxSpeed */ accelerate(value) {}

/*

  • Этот метод должен отнимать
  • от свойства speed
  • полученное значение, при условии,
  • что результирующая скорость не меньше 0 */

decelerate(value) {}

/*

  • Этот метод должен добавлять к свойству
  • distance пробег в километрах,
  • т.е. hours * speed,
  • но только в том случае,
  • если машина заведена! */ drive(hours) {} }

Пример 1.

class Guest {
  // Собственные свойства класса размещаем в конструкторе
  constructor(name, roomNumber) {
    /* параметр name не должен
     *   совпадать с названием свойства
     *   но должен быть похож.
     *   Поэтому используют прием смены
     *   названия добавляя символ '_'.
     *   Хотя это может любой другой символ
     */
    this._name = name;
  }

  // Используем геттеры и сеттеры для описания интерфейса доступа к свойствам
  get name() {
    return this._name;
  }

  set name(value) {
    this._name = value;
  }
}

//task-5_5Bonus

Использование Наследия в классах (extends,... super())

goit-js-hw-05's People

Contributors

artems83 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.