Как полный новичок в Javascript, я сталкиваюсь с тем, что может показаться простым понятием всемогущим повелителям javascript, которые называют Stackoverflow своим домом.

Моя проблема на самом деле не проблема. Когда я делаю свой JavaScript в редакторе кода в гетто, я часто вижу подобные вещи

function name(e) {

    if(e.KeyCode) { 
        ....
    }
}

Что делает это сделать? Чем это отличается от простого if(KeyCode)? О чем e?

Благодарность :)

5
Johnny 3 Авг 2010 в 19:47

7 ответов

Лучший ответ

Похоже, что функция должна вызываться браузером (или чем-то еще) при запуске определенного события (в этом случае, я думаю, это связано с клавиатурой; e обозначает событие или данные события).

Таким образом, после запуска вызывающая сторона передаст структуру события как параметр (скопированный в e). JavaScript не будет определять локальные / глобальные переменные только для одного конкретного вызова, поэтому KeyCode не будет определен, но содержит эту переменную.

4
Mario 3 Авг 2010 в 15:50

E = сокращенное имя переменной для события, которое передается в функцию.

0
DA. 3 Авг 2010 в 15:54

e - это объект события, переданный функции в большинстве случаев, он проверяет свойство keyCode объекта события, который был передан.

Например, в Firefox вы можете сделать это:

document.onclick = myFunction;
function myFunction(e) {
  //e is the click event object
  //e.keyCode, e.target, etc.
}

Это работает, потому что по умолчанию оно передает событие обработчику в качестве первого аргумента. Для вашего примера это проясняет?

function name(someObject) { //or event, or any name works
  if(someObject.keyCode) {
1
Nick Craver 3 Авг 2010 в 15:49

«e» - это параметр - объект события, который передается функции при ее вызове.

0
DVK 3 Авг 2010 в 15:50

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

Пример:

<input type="text" onkeyup="doSomething(event)"/>

function doSomething(e) {
    alert('you pressed key:' + e.keyCode);
}

Итак, e.keyCode говорит вам, какая клавиша была нажата.

4
fearofawhackplanet 3 Авг 2010 в 16:23

KeyCode не определен (сам по себе). Это свойство или атрибут e, поэтому вы должны вызывать его с помощью e.KeyCode. e - это (предположительно) событие объект . Может быть, вам стоит освежить ООП?

1
mpen 3 Авг 2010 в 15:54

Это объект события. Узнайте о событиях.

0
Felix Kling 3 Авг 2010 в 15:50