После синтаксиса
(function(){
// Do something
})()
называется Immediately Invoked Function Expression ,
Когда вы
var func = (function(){
//do something
})();
Вы не назначая функцию, но ее ответ на него. Поэтому, если вы вернете объект, у него будет ссылка на этот объект, а не на функцию.
Если вы хотите иметь функцию, чтобы действовать как инициализацию и быть в состоянии назвать его после слов, имеет указанную функцию и вызвать эту функцию,
function init(){}
init();
См What is the (function() { })() construct in JavaScript? для получения дополнительной справки.
Кроме того, при определении функции, как
function func1(){}
// or
var func1 = function(){}
ссылка на создается в памяти и присваивается FunctionName, а позже это имя используется для его вызова. Когда вы создаете анонимную функцию, вы не храните никаких ссылок и, следовательно, не можете ее вызвать.
Я хочу, чтобы это было само по себе и называть его снова, невозможно? –
@AliciaBrandon Что вы подразумеваете под «init по себе и называть его снова»? – melpomene
звонок сам по себе я имею в виду –