为什么这个函数只运行一次?
Why does this function only run once?
我真的认为这应该每100毫秒运行一次,但它只哔哔一次。
我知道setInterval,但是这让我很困惑。
var test = function () {
console.log('beep')
setTimeout( test, 100 );
}();
有人知道为什么这只运行一次而不是永远吗?
匿名函数在赋值给test
之前正在执行
您可以将其声明为命名函数表达式:
(function test() {
console.log('beep')
setTimeout(test, 100);
})();
或者将调用函数推迟到赋值之后:
var test = function() {
console.log('beep')
setTimeout(test, 100);
};
test();
OP将变量test
作为函数的返回值,而不是函数本身。
你可以这样做:
var test = function(){
setTimeout(test,100);
};
test();
或
(function test() {
setTimeout(test, 100);
})();
下面的链接包含答案,即创建阶段之后是执行阶段。测试变量在执行阶段未定义…当函数执行时。https://m.youtube.com/watch?v=Bv_5Zv5c-Ts
尝试这样的
var test = function () {
console.log('beep');
}
setInterval(test, 300);
相关文章:
- 使用每500ms运行一次的jquery函数是个好主意吗
- For循环在Jquery中只运行一次
- 谷歌图表在运行应用程序时只能显示一次
- 使函数只运行一次(Javascript)
- 更改路由后,运行一次js脚本
- 只运行一次提取的脚本
- 可能只在for循环内部运行一次代码块
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 在Flask中使用.getJSON请求时,只运行一次命令
- 运行“;非“;单击另一个函数中的函数仅一次
- JavaScript只有在最后一次被调用时才运行函数
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- 您可以在节点.js上一次运行多个应用程序吗?
- 如何一次运行一次循环javascript
- 从命令行一次运行大量摩卡测试的好方法是什么
- 如何让 JavaScript 一次运行一个字符串
- 无法在一次运行中删除多个数组元素
- 如何使jquery函数一次运行一个
- 在一次运行中分配并返回一个变量
- 一次运行2个动画