jan*_*jan 1 coldfusion scope for-in-loop
每当我使用for ... in循环时,循环的索引变量似乎总是在变量范围内.
例如,如果我有一个使用此循环的方法的组件:
for(key in params){
writeOutput(key);
}
Run Code Online (Sandbox Code Playgroud)
变量'key'将放在变量范围内.如果我已经在组件中的任何地方声明了variables.key,那么当我将它用于... in循环时,该值将被覆盖.我真正需要的是这样的:
for(var key in params){
writeOutput(key);
}
Run Code Online (Sandbox Code Playgroud)
但是这会引发解析错误.
有没有办法将for ... in index放在与变量范围不同的范围内?
Jam*_*ham 10
如果您事先没有var,则CFC中的默认范围是变量.
你必须像这样改变循环外的索引: -
var key = "";
for(key in params){
writeOutput(key);
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是避免在函数中修改所有内容,即在"本地"结构中声明变量.在CF9中内置了一个本地范围,但对于CF8或更低版本,请执行以下操作: -
var local = structNew();
for(local.key in params){
writeOutput(local.key);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |