Javascript рассматривает x.b как глобальный объект. так что вы можете получить к нему доступ даже внутри функции:
x.b = 8;
function x() {
var a = 3;
alert(x.b)
}
x();
console.log(x.a);
console.log(x.b);
Но не забудьте указать x.b перед объявлением функции.
тогда как объект a указан внутри функции x(), которая делает ее частной, поэтому вы получаете неопределенный результат для console.log (x.a);
если вы пишете так:
a = 5;
function x() {
var a = 3;
}
x.b = 8;
alert(a);
alert(x.b);
вы получите результаты, как показано ниже:
5
8
для Javascript а и x.a два отдельных объекта.
Я думаю, потому что функция - это объект, к которому вы можете получить доступ, и вы просто дали ему новое свойство «b». –
Оба 'x' и' x.b' были определены в глобальной области. Итак, почему вы ожидаете, что у них будет «местный охват»? – str
Существует, по-видимому, фундаментальное недоразумение. Точечная нотация не имеет доступа к локальным переменным. –