题目描述
//这段代码让人困惑,为什么method1可以访问到name呢?太奇怪了?
//如果name申明到了全局,那么全局的console.log(name)应该可以取到啊,如果没有申明到全局,那么method1()里面应该取不到啊。
相关代码
let height = '175'
function Person(){
console.log('Person调用了');
let name = 'ABao';
method1 = function(){
console.log('method1调用了');
console.log(name);
console.log(height);
}
}
Person();
method1(); //取到了name并打印出来。
console.log(name); //取不到name,报错
name 作用域从声明开始到 block 结束。
method1 的函数体在 block 内部,所以可以访问。