I have created the following jsfiddle which highlights my problem. http://jsfiddle.net/UTG7U/
var ExampleObject = function() {
var myArray = new Array();
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();
You don't need the this.myArray
. Using myArray
alone will suffice (and work).
alert(myArray);
should work fine I think
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();
Link: http://jsfiddle.net/3QN37/
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();