[英]Inner function cannot access outer functions variable
我創建了以下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的新手,並嘗試創建一個對象,字段和方法。 我無法獲取我的方法來訪問我的字段變量。
您試圖使用此運算符訪問本地變量,這是錯誤的,所以這是工作示例
var ExampleObject = function() {
var myArray = new Array(1,2,3);
this.example = function() {
alert(myArray);
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
鏈接: http : //jsfiddle.net/3QN37/
您混淆了兩種類型的變量:局部變量和成員變量。 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();
你不需要this.myArray
。 單獨使用myArray
就足夠了(並且可以工作)。
alert(myArray);
我認為應該工作正常
this
是每個功能范圍的變化。 但是, myArray
對內部函數可見。 例:
var ExampleObject = function() {
var myArray = new Array();
this.example = function() {
alert(myArray);
};
}
var exampleObj = new ExampleObject();
exampleObj.example();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.