Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Использование нижнего подчеркивания перед/после идентификатора (https://javascript.ru/forum/misc/30480-ispolzovanie-nizhnego-podcherkivaniya-pered-posle-identifikatora.html)

BOGa 06.08.2012 04:41

Использование нижнего подчеркивания перед/после идентификатора
 
В JavaScript для обозначения частных членов принято в качестве префикса идентификатора использовать нижнее подчеркивание:
this._veryPrivate = 0;


Но иногда в библиотечном коде нижнее подчеркивание используется в качестве суффикса идентификатора:

https://github.com/joyent/node/blob/...lib/fs.js#L548
fs.symlink = function(destination, path, type_, callback) {
  var type = (typeof type_ === 'string' ? type_ : null);
}


https://github.com/isaacs/npm/blob/m...ib/npm.js#L227
npm.load = function (conf, cb_) {
  if (!cb_ && typeof conf === "function") cb_ = conf , conf = {}
  if (!cb_) cb_ = function () {}
  if (!conf) conf = {}
}


Что обозначает этот суффикс? Предполагаю, что так обозначаются аргументы функции со значением по-умолчанию, но хотелось бы быть в этом увереннее.

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

BOGa 06.08.2012 08:50

Цитата:

Сообщение от Maxmaxmахimus
что свойство обеькта внутреннее и не должно использоваться из вне..

Как я и написал для обозначения внутренних свойств в качестве префикса используется нижнее подчеркивание.
А что обозначает нижнее подчеркивание (суффикс) в аргументе функции?

DreamTheater 06.08.2012 10:58

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

B@rmaley.e><e 06.08.2012 15:41

Цитата:

Сообщение от BOGa
В JavaScript для обозначения частных членов принято в качестве префикса идентификатора использовать нижнее подчеркивание:

Кем принято? Где принято?

Капитан как бы намекает, что оформление кода проекта определяется его стайлгайдом. Великого Единого Стайлгайда JavaScript не существует. Поэтому смотрите стайлгайды интересующих Вас проектов, выбирайте свой.
Так, в node, например, придерживаются Гуглового JS стайлгайда.

P.S. Правда, не похоже, чтобы стайлгайд хоть как-нибудь соблюдался, ибо
Цитата:

Private properties, variables, and methods (in files or classes) should be named with a trailing underscore.
Цитата:

Optional function arguments start with opt_

BOGa 07.08.2012 02:39

Всем спасибо за ответы.
Цитата:

Великого Единого Стайлгайда JavaScript не существует.
Согласен. Я неправильно выразился. ...В JavaScript некоторых проектах принято для обозначения частных членов использовать нижнее подчеркивание...


Часовой пояс GMT +3, время: 21:05.