【发布时间】:2016-08-15 05:25:56
【问题描述】:
在下面的代码中,为什么我可以访问变量x.b?它不应该有一个本地范围吗?
代码
function x() {
var a = 3;
}
x.b = 8;
console.log(x.a);
console.log(x.b);
输出
undefined
8
【问题讨论】:
-
我想是因为函数是一个你可以访问的对象,而你只是给了它一个新的属性“b”
-
x和x.b都在全局范围内定义。那么,为什么您希望它们具有“本地范围”? -
似乎存在一些根本性的误解。点表示法不访问局部变量。
-
您可能想知道您正在向函数添加属性,这可能不是您的意思。
标签: javascript function scope