Ваш первый фрагмент кода не действует - он работает только в пределах объекта; Пример:
var object = {
myFunction: function(variable) { }
};
// object.myFunction();
В основном есть два способа определить функцию Ins JavaScript:
function myFunction(variable) { }
var myFunction = function(variable) { };
Разница заключается в следующем: первый тип декларации использует function
заявление и, следовательно, позволяет использовать перед тем, как он будет объявлен. Пример:
console.log(myFunction()); // prints test
function myFunction(variable) { return "test"; }
Подробнее об этом here.
Это невозможно при объявлении функции второго типа, которая назначает анонимную функцию переменной. Функция не может быть использована до объявления переменной.
Первый фрагмент недействителен, если только он не является объектом литерала объекта. Если вы хотите узнать разницу между выражениями функций и объявлениями: http://stackoverflow.com/questions/1013385/what-is-the-difference-between-a-function-expression-vs-declaration-in-javascrip и http : //stackoverflow.com/questions/5403121/whats-the-difference-between-function-foo-and-foo-function. Кроме того, в JS нет таких типов, как 'int' (это тоже недопустимо). –
Он находится внутри var x = declare ("...", {<>}); Что делает этот синтаксис? не могу ли я использовать регулярный синтаксис внутри такого объекта? –
antonpug
Итак '{<>}' является литералом объекта, а 'myFunction' является его свойством, удерживая функцию как значение. Тем не менее, в первом случае у вас есть выражение функции, а во втором - объявление функции и различия между этими двумя, были подробно обсуждены ранее. –