function outer(x) {
function inner(y) {
if (y) console.log(y);
else console.log(42);
}
inner(x + 1);
}
outer(5); // expect a logging of '6'
inner(); // expect a Reference Error
私はそれが何をすべきかを知っていますが、私はそれだけを期待していますが、内部機能を宣言する際に気をつけなければならないクロスブラウザーの癖や副作用があります。内部関数の宣言は安全ですか?
私は意味[編集]
安全なことではそれは、彼らがグローバルな名前空間を汚染したり、彼らがで宣言された関数に対してローカルであるものとして扱われていない可能です。
[/編集]
内側の関数として使用という名前の関数式は、グローバル名前空間にfuncion 'inner'の範囲を巻き上げることをしていますか? – Raynos
@Raynos:いいえ、IEは1つではなく2つの関数を作成しますが、同じスコープにとどまります。 –
'var name = function name(){...}'を使用すると、奇妙な副作用がありますか?IEの関数宣言と関数式に同じ名前を使用する場合は、 – Raynos