2016-06-18 7 views

答えて

6
var func = (function(){ 
//do something 
})(); 

このコードは、すなわち、それはすでに関数を呼び出します、最後に()を持っています。 funcに割り当てられた値は、関数の戻り値です。

あなたはfuncに関数自体を割り当てたい場合は、単に実行します。

var func = function() { 
    //do something 
}; 
+0

私はそれを自分でinitにして、再度呼び出すことはできません。 –

+0

@AliciaBrandon "initを単独で呼び出してもう一度呼び出す"とはどういう意味ですか? – melpomene

+0

それ自身で呼んでいます。 –

0

ちょうど(あなたが必要としない。このようにする)< - この最後の行で

var func = function(){ 

    } 
console.log(func); 
1

エラーは正しい。 funcは、の結果で、(定義の後に()によって引き起こされる)関数を呼び出します。それを離れるとこれが解決されます。

匿名関数を再利用することはできません。再利用する関数を特定できないためです。変数に代入するので、実際に変数に名前を付けています。ここで使用

1

機能は、すでにあなたがfunc()

jsfiddle example

を呼び出すことができます

ので
var func = (function(){ 
    return function(){ 
    // do something here 
    } 
})(); 

関数に返す必要が関数としてfuncを使用する(function(){})()

で変数funcに実行されます

+1

これは、動作の違いがなくても、他の答えよりも精巧に思えます。 –

+0

ありがとう、答えは答えのための詳細を追加します。 –

1

A 自己呼び出し匿名関数は、の参照がないため、1回だけ実行できる関数です。この場合

var func = (function(){ 
    //do something 
})(); 

変数FUNC匿名関数への参照を持っていない、それは未定義この場合、関数によって返された値を含むであろう。

あなたは、このような参照を作成する必要が関数を呼び出すことができるようにしたい場合は、次の構文

(function(){ 
    // Do something 
})() 

var func = function(){ 
    //do something 
}; 

または

function func() { 
    // do something 
} 
0

と呼ばれImmediately Invoked Function Expression

あなたは

var func = (function(){ 
//do something 
})(); 

を行うと、関数が、それへの対応を割り当てません。したがって、オブジェクトを返すと、そのオブジェクトは参照され、関数は参照されません。

あなたは、INITとして機能し、言葉の後にそれを呼び出すことができるという機能を持っていたいという名前の関数を持っており、この関数を呼び出した場合、

function init(){} 
init(); 

は、より多くの参考のためにWhat is the (function() { })() construct in JavaScript?を参照してください。

はまた、あなたは

function func1(){} 
// or 
var func1 = function(){} 

参照がメモリ内に作成され、functionNameをに割り当てられているような関数を定義するとき、およびそれ以降この名前は、それを呼び出すために使用されています。匿名関数を作成すると、参照を格納していないため、呼び出すことができません。

関連する問題