означает (хеш) что-нибудь как параметр функции в JavaScript? - PullRequest
2 голосов
/ 31 августа 2011
var newFieldShow = function(hash) {
  hash.w.fadeIn("2000");
};

Я вижу это в каком-то коде , который я нашел в Интернете.Я никогда не видел упоминания о хэше. Я пытаюсь определить, связано ли это с хэшированием, или это просто ссылка на событие, например function(event), которую я привык видеть, и мне интересно узнать, почемуиспользуется здесь.

Ответы [ 3 ]

5 голосов
/ 31 августа 2011

Если бы кто-то прислал мне этот код, я бы сказал, что хеш - это объект со свойством w, который выглядит как объект jQuery (из-за метода fadeIn).

хэш может означать что угодно. Таким образом, необходимо правильно называть переменные (и параметры функции), которые имеют смысл.

5 голосов
/ 31 августа 2011

В этом контексте hash - это просто имя, данное параметру функции, и оно не имеет особого значения, кроме «внутреннего имени (внутри функции) первого параметра, переданного функции с именем newFieldShow». Имя «хэш» не является зарезервированным именем в Javascript.


В общем программировании термин hash часто является коротким для объекта или вещи с возможностями, подобными хэш-таблице. Хеш-таблица обеспечивает быстрый поиск фрагмента данных при наличии ключа. Javascript имеет схожие типы возможностей в своем типе объекта.

obj["foo"] = "One fine day";
console.log(obj["foo"]);    // outputs 'One fine day'.

В конкретном случае, о котором вы спрашивали, все, что мы можем видеть из пары строк кода, которые вы включили, это:

  1. 'hash' - это объект, у которого есть свойство 'w'.
  2. Значением свойства w является объект с методом .fadeIn().
  3. Поскольку fadeIn() является относительно известным методом jQuery, hash.w, вероятно, является объектом jQuery.
2 голосов
/ 31 августа 2011

Имя переменной - это всего лишь подсказка о том, что функция ожидает в качестве ввода, но в Javascript нет реального «намека на тип», который бы применял такую ​​политику.

Хеш / объект используются взаимозаменяемов Javascript, потому что к объектным элементам также можно получить доступ способом, аналогичным синтаксису того, как вы будете обращаться к записям в хэш-таблице на других языках.

hash.w

эквивалентно

hash["w"]

Последний является синтаксисом, распространенным в таких языках, как Python или Ruby (фактически класс, реализующий это поведение, в Ruby называется "Hash").

Таким образом, слово "хэш" не относится ккриптографический хэш или хэш-функция, а не функциональность хэш-таблицы.

Объекты часто упоминаются как «Хэши» в Javascript, если они являются просто набором пар ключ / значение, но не реализуют какие-либофункции, например

hash = {
    a: 5,
    b: "string",
    c: 7
}

вместо

object = {
    member_a: 5,
    member_b: "string",
    do_this: function() { ... },
    do_that: function() { ... }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...