#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для использования в будущем.
Комментариев нет:
Отправить комментарий