Object-Oriented Programming with JavaScript, Part II: Methods: Classifying Scopes - Doc JavaScript
Object-Oriented Programming with JavaScript, Part II: Methods
Classifying Scopes
The scope of global code includes two objects: the global object and the variable object. When we say that these objects are the scope of global code, we mean that the browser can access properties of these two objects only. Some of them are real properties and some are methods. The global object is the browser window object, the one you query the location
of by window.location()
. The variable object holds all global variables and methods. A new object is created on the entry point to the global code, and is destroyed upon exit. The this
object is the browser window
object. Instead of window.location
, for example, you can write this.location
and get the same URL of the current page. Try it.
Eval code is code passed to the eval()
function. For example, see how eval(alert("Hello there"))
looks like. The scope of eval code is identical to the scope of the calling code. It includes two objects: the global object and the variable object. When we say that these objects are the scope of eval code, we mean that the browser can access properties of these two objects only. Some of them are real properties and some are methods. The global object is the browser window
object, the one you query the location
of by window.location()
. The variable object holds all global variables and methods of the calling code. A new object is created on the entry point to the global code, and is destroyed upon exit.
The this
object is the same as the this
object of the calling code, which is the browser window
object.
Function code is code in the body of a function. The scope of function code is not trivial. It includes:
- The variable object of the calling code's execution context. This object includes all variables that were defined up to the point where the function (or its outer function) is called.
- The variable object of the outer function, if there is an outer function.
- The global object which is the browser
window
object. - The arguments object which includes all passed parameter values.
A new variable object is created and initially has only the declared arguments of the function. Normally, the this
object is the global object (the browser window
object). The most obvious exception is when the function is a method of an object. In this case, the this
value is the object that it is a method of. The function ObjectConstructor()
below is an object constructor. We create a new object, newObject
, with this constructor. Inside the constructor, the value of this.location
is now undefined
because this
is the object newObject
and not the browser window
object. The object newObject
does not have a property by the name of location
. Try it. Here are the functions that create newObject
and alert this.location
:
function ObjectConstructor() { alert(this.location); } function createObj() { var newObject = new ObjectConstructor(); }
Next: How to to ensure successful object construction
Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: March 26, 2001
Revised: March 26, 2001
URL: https://www.webreference.com/js/column80/6.html