1

違いは何ですか

function doStuff(){
    //do lots of fun stuff
}

window.doStuff = function(){
    //do lots of fun stuff
}

もしあれば?

4

4 に答える 4

0

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
}
于 2014-01-09T06:35:31.320 に答える