Сообщение от dmitriymar
|
вызов анонимных функций
|
кроме теории, никакой, также как и между третьей. Главное чтобы фунция была объявлена как
Function Expression:
//1
var foo = function() {};
//2
var foo = new function() {};
//3
var foo = function() {
return function() { //и эта тоже Function Expression
//..
}
}
//4
foo(function() {
//..
});
var foo = {
bar : function() {
}()
};
//5
0,function() {}; //,[] ,{}, ,'' ,любой объект
!function() {}; // ,+ ,- ,~ ,!
//6
(function() {
})(); //}())
// конструкции ниже, не относится ни к FE ни к FD:
//7
[].constructor(function() { //,[] ,{}, ,'' ,любой объект
}());
//8
(Function('alert("..")'))();
//и даже без единого слова function
([].constructor.constructor(
//..
)
)();
и так далее..
т.е. основное визуальное отличие
Function Expression от
Function Declaration в том, что
Function Expression не может начинаться с ключевого слова
function , за исключением, возврата каретки. Более подробно можно
тут