var v = 100;
function f1() {
function f2() {
console.log(v)
}
f2();
}
f1();
执行结果显而易见,会正常打印出100
那为什么呢?
是因为,js中的函数作用域是一个链条般的存在, f2有自己的作用域,而且f2有个scope的内部属性,指向了f1的作用域,同理,f1的scope又指向了window。所以在f2中可以获取到v的值。
大致上就是这样了。
var v = 100;
function f1() {
function f2() {
console.log(v)
}
f2();
}
f1();
执行结果显而易见,会正常打印出100
那为什么呢?
是因为,js中的函数作用域是一个链条般的存在, f2有自己的作用域,而且f2有个scope的内部属性,指向了f1的作用域,同理,f1的scope又指向了window。所以在f2中可以获取到v的值。
大致上就是这样了。
转载于:https://my.oschina.net/sheaned/blog/742132