Javascript setInterval()是否需要不同的函数名?

Javascript setInterval()是否需要不同的函数名?,javascript,Javascript,在学习Vue时,我创建了两个定时器来更新组件数据。在复制/粘贴时,我没有错误地更改setInterval()中第二个函数的名称,但代码运行正常(Vue部分不相关,我保留它作为一个功能示例,但我的问题的核心是关于代码底部的计时器): var数据\u mynumber={ 时间:1 }; Vue.组件('mynumber'{ 模板:“时间为{{time}}”, 数据:函数(){ 返回数据_mynumber; } }) var数据\u smthg={ 时间:5 }; Vue.组件(“smthg”{

在学习Vue时,我创建了两个定时器来更新组件数据。在复制/粘贴时,我没有错误地更改
setInterval()
中第二个函数的名称,但代码运行正常(Vue部分不相关,我保留它作为一个功能示例,但我的问题的核心是关于代码底部的计时器):

var数据\u mynumber={
时间:1
};
Vue.组件('mynumber'{
模板:“时间为{{time}}”,
数据:函数(){
返回数据_mynumber;
}
})
var数据\u smthg={
时间:5
};
Vue.组件(“smthg”{
模板:“你好{{time}}”,
数据:函数(){
返回数据\u smthg;
}
})
var vm=新的Vue({
el:“#根”
})
设定间隔(
函数myTimer(){
var d=新日期();
data_mynumber.time=d.toLocaleTimeString();
},
1000
);
设定间隔(
函数myTimer(){
var d=新日期();
数据时间=d;
},
100
);

函数名具有不同的作用域,因此不会发生冲突


虽然--对于调试,使用不同的名称可能会有所帮助。

函数名具有不同的作用域,因此不会发生冲突


尽管--对于调试,使用不同的名称可能会有所帮助。

事实上,您不需要函数的名称。它被称为匿名函数或lambda,名称没有区别。您正在将其作为参数(回调)传递。它不会调用函数名,而是调用引用

对于您的代码,这将是

setInterval(
  function() {
    var d = new Date();
    data_mynumber.time = d.toLocaleTimeString();
  },
  1000
);

事实上,您不需要函数的名称。它被称为匿名函数或lambda,名称没有区别。您正在将其作为参数(回调)传递。它不会调用函数名,而是调用引用

对于您的代码,这将是

setInterval(
  function() {
    var d = new Date();
    data_mynumber.time = d.toLocaleTimeString();
  },
  1000
);

你需要函数名吗?您正在创建一个匿名回调。@Davidtroon:我不知道这是可能的。我用实际代码更新了被接受的答案,以防有人在寻找相同的答案。你需要函数名吗?您正在创建一个匿名回调。@Davidtroon:我不知道这是可能的。我用实际代码更新了接受的答案,以防有人在寻找相同的答案。具体而言,命名函数表达式中的名称范围是函数体。具体而言,命名函数表达式中的名称范围是函数体。谢谢。我更新了你的答案,添加了相关代码。谢谢。我更新了您的答案以添加相关代码。