首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript "this.a .a= 2,b= 3“是在父作用域中查找的"b”吗?

问JavaScript "this.a .a= 2,b= 3“是在父作用域中查找的"b”吗?
EN

Stack Overflow用户
提问于 2015-11-30 23:46:10
回答 2查看 56关注 0票数 0

我知道,如果排除var关键字,JS将搜索父作用域。

但是,我看到人们分配了多个vars,例如:

代码语言:javascript
复制
var a = 3,
    b = 2;

我假设这种类型的赋值并不是通过父作用域来查看的。

我是否正确地假设了这一点,并且这个示例的行为是相同的,还是检查父作用域:

代码语言:javascript
复制
this.a = 3,
    b = 2;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-30 23:50:20

不,你说的不对。this.与作用域无关;相反,this是对象,.a是属性访问。这不是任何类型的声明,它只是一个赋值,它是来自另一个任务的用逗号分隔:

代码语言:javascript
复制
b = 2

这个任务将像往常一样搜索范围链。

相反,多变量声明使用逗号分隔名称(初始化符是可选的)。它相当于

代码语言:javascript
复制
var a, b;
a = 3;
b = 2;
票数 1
EN

Stack Overflow用户

发布于 2015-11-30 23:50:09

您发布的这两个构造所做的事情完全不同。

代码语言:javascript
复制
var a = 3,
    b = 2;

在上述情况下,var语句允许,在一个中指定多个var。

代码语言:javascript
复制
var a = 3;
var b = 2;

在您发布的第二个片段中,您将this的this属性设置为3,然后(使用逗号运算符)将变量b (这将涉及搜索父作用域以找到b的声明)分配给2。

有关更多信息,请参阅运算符

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34010141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档