2015-05-02 3 views
-1

У меня есть кнопка ввода, и когда пользователь нажимает, он должен менять фон. Что здесь не так?Почему я не могу назвать функцию функции JavaScript?

<input type="button" value="" onclick="function()" id="sqr1" /> 

<script> 

var vsqr1 = document.getElementById("sqr1"); 

function function() { 
    vsqr1.style.backgroundColor = "#000"; 
} 


</script> 
+6

'function' это ключевое слово, вы не можете использовать его в качестве имени функции. используйте другое имя, например 'changeColor' и т. Д. –

+1

представьте себе свою собаку **« где есть »**, когда вы спросите кого-нибудь, где находится, вы думаете, что они поймут вас? нет, они не будут. и javascript не поймет вас, если вы назовете функцию функции. – Banana

+0

Я просто рассмеялся, увидев заголовок сообщения. :) Мои пять 5 центов, некоторые из самых ужасных кодов, которые я когда-либо видел, были написаны в javascript. Я, по крайней мере, рад, что функция не может использоваться для обозначения функции! : D Вы чувствуете себя очень медитативным, я полагаю, задавать такой вопрос. Я бы предложил попробовать написать его на итальянском языке, :) вы сможете сделать функцию, называемую функцией, но на другом языке. – 99Sono

ответ

4

function недействительное наименование для функции; измените свой код на это:

<input type="button" value="" onclick="changeColor()" id="sqr1" /> 

<script> 

var vsqr1 = document.getElementById("sqr1"); 

function changeColor() { 
    vsqr1.style.backgroundColor = "#000"; 
} 


</script> 
1

«функция» - это зарезервированное слово. Вы не можете использовать его для имени функции.

1

Вы не можете вызвать функцию function, поскольку, когда вы выполняете onclick = function(), она выглядит как анонимная функция (где вы должны поместить скрипт в строку), переименуйте функцию в нечто более значимое, и она будет работать:)

2

Несколько людей уже есть правильный ответ уже здесь, а также расширить объяснение:

Что такое зарезервированное слово?

Большинство языков программирования откладывают (или «резервируют») короткий список слов и не позволяют использовать их в качестве имен переменных. Иногда их также называют «ключевыми словами».

Почему они существуют?

Это особое значение имеет язык программирования, а часы компилятора или интерпретатора специально предназначены для анализа вашего кода. Кроме того, использование этих слов в качестве переменных имен сделает код очень трудным для чтения для людей! (Можно было бы теоретически разработать язык, который не требовал бы зарезервированных слов, но это усложняло бы реализацию синтаксического анализатора, а также создание некоторого запутанного кода)

Где можно использовать зарезервированные слова CAN?

В JavaScript вы не можете использовать ключевое слово в качестве имени переменной, но вы можете использовать его как имя свойства объекта. Так, например,

var delete = {foo: 3}; // Forbidden 
var foo = {delete: 3}; // Allowed 

Какие Зарезервированные слова в JavaScript?

По спецификации ECMAscript 6, reserved words (keywords) в JavaScript являются:

  • ждут
  • перерыв
  • случай
  • класса
  • поймать
  • Const
  • продолжают
  • отладчик
  • по умолчанию
  • удалить
  • сделать
  • еще
  • перечисление
  • экспорт
  • расширяет
  • наконец
  • для
  • функции
  • если
  • импорт
  • в
  • InstanceOf
  • пусть
  • новый
  • возвращение
  • супер
  • переключатель
  • это
  • бросок
  • попробовать
  • TypeOf
  • вар
  • аннулируются
  • в то время как
  • с
  • выход