<code>var a=3; var object = { a:2, run: function() { alert(a); //a=3; } }; object.run(); </code>
Why is a not 2?
What does a:2 in the object mean?
<code>var a=3; var object = { a:2, run: function() { alert(a); //a=3; } }; object.run(); </code>
Why is a not 2?
What does a:2 in the object mean?
<code>run: function() { this.a=1; } }; </code>
If you don’t specify it explicitly, it is still a variable in the global scope.
<code class="javascript">var a=3; var object = { a:2, run: function() { alert(this.a);//2 alert(a);//3 } }; object.run(); </code>
The problem with scope is that if you pop up an a directly, the program will look for a at this time. It will first look for it in the current scope. If it does not find it, it will look outside, and then it will find var a. This a is actually quite As for window.a, in fact, if you directly pop up an a here, it is equivalent to finding an a under the global scope of window.a. Why is it not the a that object.a is looking for? As mentioned earlier, what you are looking for is equivalent to The scope environment of window.a instead of obejct.a is different. JS is an object-oriented programming language. Everything must have its own existence. To which thing does it belong? You need to understand this. If you don't do it, it is equivalent to acquiescing that it is global. Generally, JS owns it. Everything is defined under the window. So if you don't define which a it is first, then a is equivalent to directly belonging to the window. Of course, what is defined below the function is equivalent to belonging to the scope of the function. Not much to say in detail. Read more information.