オブジェクトの拡張を局所化したブロック内で行うオブジェクトを即時関数の引数に渡して、関数ブロック内で拡張を行う。 var obj = {};
(function (o) {
var num = 123;
o.num = num;
})(obj);
console.log(obj.num); // 123
ちなみに、 var num = 0;
(function (n) {
n = 123;
})(num);
console.log(num); // 0
は、期待通りにならない。↓もダメ。 var obj = {};
(function (o) {
var num = 123;
o = { num:num };
})(obj);
console.log(obj.num); // undefined
|
|