Я работаю веб-разработчиком 3 года.Я очень редко создавал свои собственные прототипы для объектов (наверное, я также создавал прототипы с помощью нового синтаксиса класса ES 6).
Всякий раз, когда я могу что-то сделать с прототипом:
function Client(host, port) {
this.host = host;
this.port = port;
}
Client.prototype.httpRequestHelper = function(body) {
...
};
var client = new Client('http://127.0.0.1', 8801);
использование замыканий вместо этого работало просто отлично и было предпочтительным подходом, потому что больше людей хорошо понимают этот подход (включая меня):
function createClient(host, port) {
function httpRequestHelper(body) {
...
}
return {
httpRequestHelper
}
}
var client = createClient('http://127.0.0.1', 8801);
Каковы преимущества использования прототипов (и классов ES6) по сравнению с замыканиями?Зачем они нужны?