#1にはあまり意味がありません。 window
は読み取り専用であり、再定義することはできません。したがって、#1の方法で特定の時点でその値を取得する必要はありません。 #2は大丈夫です。
パターン#1の用途は、後に他のコードによって変更されるかもしれませんもの、例えばを取り込むため、主に有用である:
var x = 1;
(function(x) {
setTimeout(function() {
console.log("inside, x = " + x);
}, 100);
})(x);
x = 2;
console.log("outside, x = " + x);
...や物事のための便利な速記名を取得します:
(function(d) {
var div = d.createElement("div");
div.innerHTML = "Hi";
d.body.appendChild(div);
})(document);
また、一般的に
undefined
識別子ですが変更された場合には
undefined
を取得するために使用した
:
(function(u) {
console.log(typeof u); // "undefined"
})(/*Note there's no argument passed*/);
を今すぐundefined
は読み取り専用であり、再定義することはできないことを、行うには本当の必要はありませんそれはもはや。