Ost*_*rov 5 javascript arrays function
如何强制函数创建全局变量?我有这个代码:
$.ajax({
url: 'https://dl.dropboxusercontent.com/s/11ofmbg4d4y3gb0/zakaznice_tyden.csv',
dataType: 'text',
}).done(successFunction);
function successFunction(data) {
var promenna = data.replace(/\n/g,";").split(";");
var result = [];
for (var i = 0; i < promenna.length; i+=2) {
var line = [];
line.push(promenna[i]);
line.push(promenna[i+1]);
result.push(line);
}
for (var i = 0; i < result.length; i += 1){
$("#tyden" + i + "").append(result[i][0]);
$("#tyden" + i + "kolik").append(result[i][1]);
}
}
Run Code Online (Sandbox Code Playgroud)
它加载 csv 文件并从中创建数组。如何使数组“line”全局可达?
将其范围置于函数范围之外
最常见的方法可能是简单地在函数范围之外声明它(如果这是一个选项):
// This will be globally accessible from any child functions, etc.
var array = [];
function example(){
// Your code here can access the array as expected
}
Run Code Online (Sandbox Code Playgroud)
隐式全局声明
如果你想声明一个具有全局作用域的变量,只需在var声明它时省略,这将隐式地在全局范围内创建它:
function example(){
// This will be a global variable
array = [];
}
Run Code Online (Sandbox Code Playgroud)
注意:这在严格模式下不起作用,严格模式消除了隐式全局变量。您可以在此处阅读有关此方法的更多信息。
存储变量
另一个很好的方法是简单地将对象存储为window对象的属性,并从那里访问它,如Pamblam 的回答中提到的。
| 归档时间: |
|
| 查看次数: |
3545 次 |
| 最近记录: |