我在CF中读到你应该始终对变量进行范围调整,因为如果你不提供显式范围,CF必须搜索范围,直到找到变量。这是真的吗?如果是这样,test2()
将是更有效的函数编写方式吗?
<cfscript>
function test() {
var result = 5;
result = 42;
return result;
}
function test2() {
var result = 5;
Local.result = 42;
return Local.result;
}
</cfscript>
答案 0 :(得分:4)
随着本地范围的引入,使用var关键字只告诉CF,vared的东西属于本地范围。两个例子都完成了同样的事情。
我建议不要混淆两者。
答案 1 :(得分:1)
(我做的)是一个LOCAL变量作为一个结构来包含函数内部所需的所有变量,我修改了test2()来显示这个。我们这样做是为了确保与CF8的向后兼容性。因为我们仍然处理CF8和CF9服务器。
<cfscript>
function test() {
var result = 5;
result = 42;
return result;
}
function test2() {
var local = {};
local.otherthing = 'hello';
local.result = 5;
Local.result = 42;
return Local.result;
}
</cfscript>