Вызов функции по событию onclick [дубликат]

300
06 октября 2017, 19:11

На данный вопрос уже ответили:

  • Не работает onclick на ссылке 1 ответ
  • Почему this в onclick необязателен? 3 ответа

Наткнулся на интересное поведение в javascript, что при вызове функции с сигнатурой click() вызов этой функции не происходит. С чем связана эта особенность? Существуют ли еще подобные конструкции?

function click() { 
  console.log("click is called"); 
} 
 
function doSomething() { 
  console.log("doSomething is called"); 
}
<input type="button" value="click" onclick="click()" /> 
<input type="button" value="doSomething" onclick="doSomething()" />

Answer 1

Дело в том, что при создании обработчика таким образом он создается в области видимости кнопки. А там уже есть свой метод клик:

<input type="button" value="click" onclick="console.log(this.click);" />

Чтобы обратится к глобально объявленной функции с таким именем, можно сделать это через window:

function click() { 
  console.log("click is called"); 
}
<input type="button" value="click" onclick="window.click();" />

READ ALSO
Не корректно работает слайдер

Не корректно работает слайдер

Использую слайдер fullPagejs-master

248
Angular для прототипа стартапа

Angular для прототипа стартапа

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

302
jquery dialog расположить в центре экрана

jquery dialog расположить в центре экрана

при открытии диалога он располагается в центре страницы, те

248
Как отлаживать typescript и Angular проекты?

Как отлаживать typescript и Angular проекты?

Как отлаживать TypesSript? Есть ли средства для отладки Angular проектов (например плагины для браузеров или типа того)? Чтобы можно было в нормальном...

212