Рубрики
Без рубрики

История занятий в JS

Что такое класс в мире языка программирования? Класс дает план для создания o … С меткой JavaScript.

Что такое класс в мире языка программирования?

Класс дает план создания объектов, предоставление начальных значений для состояния (переменных членов) и реализаций поведения (функции или методов членов))

По умолчанию почти все объектно-ориентированные языки (Python, Java, C ++ ..). Они предоставляют способ создать объекты с некоторым состоянием и поведением.

Пример в Python:

# Class declaration
class Train:
    def __init__(self):
        self._source = ""
        self._destination = ""

    def set_source(self, source):
        self._source = source

    def set_destination(self, destination):
        self._destination = destination

    def go(self):
        print("Going from %s to %s"%(self._source, self._destination))

# Instantiation
train = Train()
train.set_source("Kadapa")
train.set_destination("Chennai")
train.go()

Но JavaScript не имеет такой функции в старые дни до ES6. Таким образом, разработчики придумали такой шаблон, как ниже, используя силу закрытия в JS.

Пример в JavaScript – реализация 1:

// class-ish declaration
function Train() {
  var _source = ""
  var _desination = ""

  function set_source(source) {
    _source = source
  }

  function set_destination(destination) {
    _desination = destination
  }

  function go() {
    console.log(`Going from ${this._source} to ${this._desination}`)
  }

  return {
      set_source: set_source,
      set_destination: set_destination,
      go: go
    }
}

// Instantiation
train = Train()
train.set_source("Kadapa")
train.set_destination("Chennai")
train.go()

Это дает то же самое, что и другие языки программирования. Но это не так эффективно, потому что каждый экземпляр поезда будет держать всю копию всех функций и переменных.

Таким образом, ниже код находится идеальная разработчики реализации в JS, используя силу прототипов.

Пример в JavaScript – реализация 2:

// class-ish declaration
function Train() {
  this._source = ""
  this._desination = ""
}

Train.prototype.set_source = function(source) {
  this._source = source
}

Train.prototype.set_destination =  function(destination) {
  this._desination = destination
}

Train.prototype.go =  function() {
  console.log(`Going from ${this._source} to ${this._desination}`)
}

// Instantiation
train = new Train()
train.set_source("Kadapa")
train.set_destination("Chennai")
train.go()

Приведенный выше код будет использовать бенфит, которые мы получаем от прототипов и конструкторов функций в JS. Таким образом, все экземпляры поезда будут иметь другую копию участников (источник, назначение), но единственная копия методов для всех экземпляров.

Поскольку нам нужно много сделать эту технику, чтобы создать такие объекты, как класс. JS Core Team добавила класс Зарезервированное ключевое слово для JS, чтобы облегчить нашу жизнь. Под капотом он делает то же самое, что и наш прототип. Это просто синтаксический сахар в JavaScript.

Моя любимая реализация класса

// class declaration
class Train {
  constructor(){
    this._source = ""
    this._desination = ""
  }

  set_source(source) {
    this._source = source
  }

  set_destination(destination) {
    this._desination = destination
  }

  go() {
    console.log(`Going from ${this._source} to ${this._desination}`)
  }
}

// Instantiation
train = new Train()
train.set_source("Kadapa")
train.set_destination("Chennai")
train.go()

Оригинал: “https://dev.to/pavancse17/history-of-classes-in-js-21f4”