Недавно я читал шаблоны Javascript Стефанова. И я нашел этот пример запутанным для меня здесь:
Другим случаем использования соглашения для имитации функциональности является соглашение о закрытых членах. Хотя вы можете реализовать настоящую конфиденциальность в JavaScript, иногда разработчикам проще просто использовать префикс подчеркивания для обозначения частного метода или свойства. Рассмотрим следующий пример:
вар человек = {
получитьИмя: функция () {
вернуть this._getFirst() + ' ' + this._getLast(); },
_getFirst: функция () {
// ... },
_getLast: функция () {
// ... }
};
В этом примере getName() должен быть общедоступным методом, частью стабильного API,
тогда как _getFirst() и _getLast() должны быть закрытыми.
Насколько я понимаю, либо метод приватный, либо публичный определяется тем, как он был написан. Например, если мы говорим о функции-конструкторе, то this.getFirst() = function(){ ... } будет общедоступным методом, тогда как var getFirst=function(){...} будет частным.
Пример в книге не является функцией-конструктором. И я верю, что нельзя просто использовать подчеркивание, чтобы сделать метод общедоступным или закрытым. Как же тогда сделать частный или публичный метод в объекте, объявленном так, как в примере выше?
Большое спасибо!