違いは何ですか
function doStuff(){
//do lots of fun stuff
}
と
window.doStuff = function(){
//do lots of fun stuff
}
もしあれば?
違いは何ですか
function doStuff(){
//do lots of fun stuff
}
と
window.doStuff = function(){
//do lots of fun stuff
}
もしあれば?
1 つ目は、利用できないブラウザー コンテキストで動作しwindow
ます。また、(割り当てられている変数またはメソッド キーに関係なく) 名前もあり、スタック トレースや再帰などに役立ちます。
2 番目は、たとえば node.js では機能しません (ただし、機能しますglobal
)。次の例のように、独自の名前がないため、再帰が困難になります。
window.doStuff = function( i ){
if( --i ){
return window.doStuff();
}
return i;
}
次のように、window.doStuff に別のものが割り当てられた場合…</p>
window.doStuff = 'erg';
…その後、上記の関数は匿名であり、それ自体を参照できないため、壊れます — 基本的に失われます。
もちろん、両方を行うことを妨げるものは何もありません。
window.doStuff = function doStuff(){
//do lots of fun stuff
}