未捕获的ReferenceError:getDetails未定义
Uncaught ReferenceError: getDetails is not defined
我正在尝试执行以下JavaScript
代码,但遇到了错误。
var services = [{place_id:'okkkkkk'}];
var delay = 100;
var nextAddress = 0;
function theNext() {
if (nextAddress < services.length) {
setTimeout('getDetails("' + services[nextAddress].place_id + '", theNext)', delay);
nextAddress++;
} else {
}
}
function getDetails(address, next) {
alert('ok');
}
theNext();
错误:
VM687:1未捕获引用错误:未定义getDetails
函数已经定义,我不确定是什么导致了问题:
https://jsfiddle.net/qmnaykqw/
当您将字符串传递给setTimeout
时,它将在全局范围内进行求值。由于getDetails
是在另一个名为onload
的函数(至少在您的JSFiddle链接上)中定义的,因此在计算字符串时它超出了作用域。
您需要将一个函数传递给setTimeout
。这将创建一个闭包并保留范围。
function delayed_function() {
getDetails(services[nextAddress].place_id, theNext);
}
setTimeout(delayed_function, delay);
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- 这.SOMETHING 总是返回未定义的 - extjs
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- Wordpress中带有JQuery Accordion的未定义匿名函数
- 未捕获的ReferenceError:getDetails未定义