Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Node.js: javascript ООП, зачем такие конструкции?

#javascript #ооп #nodejs


Начал изучать Node.js и часто вижу такие конструкции:

var Network = function(url) {
    this.url = url;
}


Зачем присваивают текущим свойствам их же внутри?
    


Ответы

Ответ 1



Вероятно Network - это функция-конструктор (в общем понимании - класс). Позже из этой функции будет создаваться экземпляр класса. Что бы url был доступен всем методам нового объекта, переменную url необходимо записать в свойство объекта. Попробуйте выполнить следующий код и поймете в чем дело. Network = function(url) { this.url = url; } Network.prototype = { testProperties: function() { console.log(typeof url); // undefined; console.log(this.url); // ru.stackoverflow.com } }; var stackoverflow = new Network('ru.stackoverflow.com'); stackoverflow.testProperties();

Ответ 2



в конструкции var Network = function(url) { this.url = url; } Network - это класс. При создании экземпляра этого класса (new Network('http://...')) функции-конструктору передается параметр url. И этот экземпляр класса (this) сохраняет данный url в своих свойствах объекта this->urlдля использования в будущем.

Комментариев нет:

Отправить комментарий