Да, но вам придется явно ссылаться на foo
вне родительской области.Обычно это просто this
, но вам нужно быть осторожным в ситуациях, когда ваша функция может быть вызвана через apply
или call
.Это, например, должно работать:
var foo = 10;
function bar () {
var foo = this.foo;
return foo;
}
bar(); // 10
Редактировать: мне нужно внести поправку, согласно комментарию @Felix.this
действительно обычно ссылается на глобальную область, а не на родительскую область.Рассмотрим это, например:
var x = 'global';
(function () {
var x = 'inner';
(function() {
var x = this.x;
console.log(x); // 'global'
})();
})();