• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

javascript – JS中对象的作用域?或者是对象的属性的一些疑问?

php 搞代码 3年前 (2022-01-23) 18次浏览 已收录 0个评论
文章目录[隐藏]
<code>var a=3;var object = {     a:2,     run: function() {         alert(a);         //a=3;         }     }; object.run(); </code>

a为什么不是2?
在对象中的a:2是什么意思?

回复内容:

<code>var a=3;var object = {     a:2,     run: function() {         alert(a);         //a=3;         }     }; object.run(); </code>

a为什么不是2?
在对象中的a:2是什么意思?

<code>run: function() {     this.a=1;     } }; </code>

你不显示指定,还是全局作用域下的变量。

本&文来源gao@daima#com搞(%代@#码网@

<code class="javascript">var a=3;var object = {     a:2,     run: function() {         alert(this.a);//2         alert(a);//3         }     }; object.run(); </code>

作用域的问题了,你直接弹出一个a,这个时候程序就会找a,首先会在当前作用域里面找,没有,就会去外面找,然后就找到了var a,这个a其实就相当于 window.a,其实你这里直接弹出一个a,就相当于是找了个 window.a全局作用域下的a ,而为什么找的不是object.a 这个a呢,前面说了,你找的相当于是 window.a 而不是 obejct.a两者的作用域环境不一。js作为一个面向对象的编程语言,所有的东西又要有个存在的归属,那个东西属于哪个,这个要搞明白,如果你不弄的话,就相当于默认了它是全局下面的,一般js所有的东东都是定义在window下面的。所以你要不先定义好是哪个a,那a就相当于直接是window的了。当然函数下面定义的就相当于是属于函数作用域范围里里面的。具体的不多说了。多看资料。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:javascript – JS中对象的作用域?或者是对象的属性的一些疑问?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址