您的位置:首页 > Web前端 > JavaScript

js的作用域之静态作用域

2016-09-01 00:00 211 查看

js学习之作用域

function f1() {
alert(v);
}

function f2() {
var v = 100;
f1();
}

f2();

执行上述代码,会发现程序报错 v : undefined

为什么呢?这就和js的作用域有关了

f1在定义的时候, js解析器会给f1定义一个内部的属性叫scope, 按照f1定义时的词法环境,scope是指向window的,所以当f2调用f1的时候, 程序首先会在f1的函数体内寻找变量v, 没找到, 就去window中去寻找v,也没有变量v,所以程序就报错了。

也就是说,f1的作用域是在定义的时候就已经决定了,而不是在调用时决定的。这也就是所谓js的静态作用域
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascritp作用域