我有一种情况,我正在重构一些代码 - 我在一个循环中分离了很多代码并将它放入一个组件中,每个活动都是一个方法,都被称为w/ia循环.
当它运行时 - 第二次通过循环,它无法解析a.id - 在行"var b = b(i,a.id);"
如果我在每一行都执行writeOutput(),我会在循环开始和每一行看到我的val,直到最后一次.
function a() {
//do thing
return id;
}
function b() {
//do thing
return id;
}
function bigOne() {
for( var i=1; i<2; i++; ) {
var a = a( i );
var b = b( i, a.id );
}
}
Run Code Online (Sandbox Code Playgroud)
我也尝过这个 - 同样的问题
function bigOne() {
var a = '';
var b = '';
for( var i=1; i<2; i++; ) {
a = a( i );
b = b( i, a.id );
}
}
Run Code Online (Sandbox Code Playgroud)
我已经读过这个Coldfusion,你提供的符号[method_name]不是一个函数 - 但它不是同一个东西,这篇文章是关于getter和setter ...我不认为这适用于我的问题.
如果我像这样输出我的输出('看'它':
function bigOne() {
var loopcount = 1;
for( var i=1; i<2; i++; ) {
writeOutput( 'loop count = ' & loopcount );
var a = a( i );
writeoutput( 'a.id = ' & a.id );
var b = b( i, a.id );
}
}
Run Code Online (Sandbox Code Playgroud)
我明白了:
loop count = 1
a.id = 52978
loop count = 2
Run Code Online (Sandbox Code Playgroud)
那么错误.错误MSG:实体具有不正确的类型,可以作为函数调用.您提供的符号insStop不是函数的名称.
函数由引用指向,就像变量一样,所以当你这样做时:
a = a();
Run Code Online (Sandbox Code Playgroud)
您将覆盖指向函数的引用,a
并使用从其返回的值.因此,下次您尝试调用时a()
,a
ia不再是您的函数,它是上次调用时返回的值.
当你得到一个不能以你想要的方式使用它的变量的错误时...... 将它转储出来并查看它包含的内容.这通常会指出你正确的方向,你做错了什么.
归档时间: |
|
查看次数: |
1907 次 |
最近记录: |