У меня есть этот код ...
function a(options) {
for (var item in options) {
if ( ! options.hasOwnProperty(item)) {
continue;
}
this[item] = options[item];
}
}
a({ 'abc': 'def' });
jsFiddle .
Несмотря на то, что это распаковывает переменные из объекта, он устанавливает их в глобальную область (прикрепленную к window
), потому что this
равно window
в этом случае.
Итак, после функции я могу выполнить alert(abc)
, и она выдаст предупреждение def
, что нехорошо.
Как бы я установил область видимости переменных для функции?