Inner Function Cannot Access Outer Functions Variable
I have created the following jsfiddle which highlights my problem. http://jsfiddle.net/UTG7U/ var ExampleObject = function() { var myArray = new Array(); this.example = func
Solution 1:
You have confused two types of variables: Local variables and member variables. var myArray
is a local variable. this.myArray
is a member variable.
Solution using only local variables:
var ExampleObject = function() {
var myArray = new Array(); // create a local variable
this.example = function() {
alert(myArray); // access it as a local variable
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
Solution using only member variables:
var ExampleObject = function() {
this.myArray = new Array(); // create a member variable
this.example = function() {
alert(this.myArray); // access it as a member variable
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
Solution 2:
you were trying to access a local variable using this operator which is wrong, so here is the working example
var ExampleObject = function() {
var myArray = new Array(1,2,3);
this.example = function() {
alert(myArray);
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
Solution 3:
You don't need the this.myArray
. Using myArray
alone will suffice (and work).
Solution 4:
What this
is changes with the scope of each function. However, myArray
will be visible to inner function. Example:
var ExampleObject = function() {
var myArray = new Array();
this.example = function() {
alert(myArray);
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
Solution 5:
alert(myArray);
should work fine I think
Post a Comment for "Inner Function Cannot Access Outer Functions Variable"