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

WBOY
Freigeben: 2016-08-23 09:17:41
Original
1020 Leute haben es durchsucht

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

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

回复内容:

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

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

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

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

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!