правильное обозначение параметров функции - PullRequest
0 голосов
/ 07 апреля 2010

Каждый раз, когда я передаю некоторые параметры в функцию JavasScript или jQuery, я использую несколько случайных букв. Каковы правильные буквы для соответствующих типов переменных?

function (o) {}, например, для объекта. Но каковы другие буквы? У кого-нибудь есть список таких?

Ответы [ 5 ]

3 голосов
/ 07 апреля 2010

Советую вам назначать имена не по типам, а по данным, которые содержит переменная.Если вы передаете объект, который содержит конфигурацию для функции, вызовите переменную configuration, если вы передадите переменную, которая содержит имя, вызовите ее name и так далее.Таким образом, код становится более читабельным и понятным.

2 голосов
/ 07 апреля 2010

Подойдет любая буква, не существует такого понятия, как стандарт для использования букв в качестве параметров.

Однако использование букв для параметров является плохой практикой, поскольку буква не описывает, для чего предназначен параметр.

Рассмотрим этот пример:

function ShowBusyCursor(s) {
    //...
}

Если вы посмотрите на заголовок функции, вы не сможете угадать, что означает параметр s.Но если вы измените код следующим образом:

function ShowBusyCursor(cursorIsDisplayed) {
    //...
}

Параметр cursorIsDisplayed намного более удобен для разработчиков и говорит, что это логическое значение, которое можно установить на true для отображения курсора.Если бы вы использовали s, вам нужно было бы заглянуть в код, чтобы понять это.

1 голос
/ 07 апреля 2010

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

Я часто видел пояснительные имена переменных, которые включают тип, например sFirstName будет строкой, обозначенной "s", bForce будет булевым, oConfig будет объектом и nSubTotal будет число.

1 голос
/ 07 апреля 2010

Вот хороший список букв, о которых я мог подумать:

o - object
a - array
s - string
d - date
n - number
r - regexp
b - boolean

А если серьезно, кроме шуток, я думаю, что вы можете смешивать упакованный / минимизированный источник с реальным источником, который пишут разработчики.Например, эта маленькая функция изначально выглядела так:

function myFunction(personName) {
    this.name = personName;
}

Но после минимизации она становится такой:

function myFunction(a){this.name=a}

packer - одна из таких утилитДин Эдвардс, который уменьшит ваш Javascript.Поиграйте с вашим исходным кодом на этом веб-сайте и посмотрите сжатый вывод.Проверьте параметр Shrink variables справа, чтобы увидеть, как параметры и другие переменные переименовываются.

Это, однако, не должно влиять на то, как вы пишете свой код вообще.Будь то Javascript или любой другой язык, все идентификаторы - переменные, имена функций, имена классов и т. Д. Должны именоваться в соответствии с тем, что они представляют или делают, а не скрывать короткие символы.

0 голосов
/ 07 апреля 2010

Это вариант венгерской нотации , и я бы не советовал использовать однобуквенные имена переменных. Что, если вам нужно передать 2 любых данных одного типа? Как уже говорили другие, он также не очень хорошо представляет значение переменной. Я думаю, что это намного лучше:

function foo(sFirstName, sLastName)
{
    alert("Hi, my name is " + sFirstName + " " + sLastName);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...