我创建了以下jsfiddle,突出了我的问题。 http://jsfiddle.net/UTG7U/
var ExampleObject = function() {
var myArray = new Array();
this.example = function() {
alert(this.myArray);
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
我是JavaScript新手并尝试创建对象,字段和方法。 我无法通过我的方法访问我的字段变量。
答案 0 :(得分:6)
您试图使用此运算符访问本地变量,这是错误的,所以这是工作示例
var ExampleObject = function() {
var myArray = new Array(1,2,3);
this.example = function() {
alert(myArray);
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
答案 1 :(得分:6)
您混淆了两种类型的变量:局部变量和成员变量。 var myArray
是一个局部变量。 this.myArray
是成员变量。
仅使用局部变量的解决方案:
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();
仅使用成员变量的解决方案:
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();
答案 2 :(得分:1)
您不需要this.myArray
。单独使用myArray
就足够了(并且可以工作)。
答案 3 :(得分:1)
alert(myArray);
应该可以正常工作
答案 4 :(得分:1)
this
的内容随每个函数的范围而变化。但是,myArray
将对内部函数可见。例如:
var ExampleObject = function() {
var myArray = new Array();
this.example = function() {
alert(myArray);
};
}
var exampleObj = new ExampleObject();
exampleObj.example();