Ну, свойство onclick
ожидает ссылки на функцию, чтобы она выполнялась при щелчке элемента. Обычно это либо:
element.onclick = funcRef;
или
element.onclick = function() {
funcRef();
};
(но, конечно, это лучше всего использовать addEventListener
и attachEvent
)
Обратите внимание, как оба они являются ссылки на функции, не звонит.
Когда что-то ожидает ссылки, вы не называете это ... вы назначаете ссылку на него (первый пример).
Если вы хотите специально вызвать функцию, вы вызываете ее с помощью ()
(второй пример). Но обратите внимание, как во втором примере все еще есть ссылка на функцию, назначенную для onclick
- это просто анонимная функция.
Вероятно, более важная часть:
Некоторые люди думают, что вы хотите сделать это:
element.onclick = funcRef();
Но сразу же выполняет функцию (из-за ()
), и присваивает возвращаемое значение до onclick
. Если возвращаемое значение не является функцией, это не то, что вы хотите.
Я думаю, что мораль этой истории заключается в том, что когда вам нужно/нужно что-то выполнить прямо сейчас, вы вызываете функцию. Если функция нужна для последующего использования или нуждается в сохранении, вы ее не вызываете.
Я могу ошибаться, новое для этих динамических языков (только начал смотреть на Python) , но я думаю, что ссылка - это когда вы хотите создать псевдоним для указанной функции, а вызов - буквально, когда вы хотите позвонить. (EG. 'Var = hello', тогда' var() 'совпадает с вызовом' hello() 'везде, где вызывается var()' – SGM1