在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于js function(){}

關(guān)于js function(){}

一直沒有想明白為什么 setInterval(function(){},1000) //setInterval不停的調(diào)用里面的函數(shù),但是里面的function(){}沒有定義命名如何調(diào)用?

SetInterval里面的function(){}是否等于(function(){})() //可能我表達(dá)得不清楚,只是一直有這個(gè)疑惑

回答
編輯回答
不舍棄

function(){}是參數(shù),內(nèi)部只需類似cb()就可以了

2018年5月1日 02:49
編輯回答
萢萢糖

js里函數(shù)是以函數(shù)對象的形式存在的,表面上看不到函數(shù)的名稱,但是計(jì)時(shí)器棧里保存了方法所在的位置,到點(diǎn)兒了拿出來用就行了

2018年9月18日 06:58
編輯回答
老梗

setInterval拿到了function(){}的引用。
你手動調(diào)用需要名字,所以沒有名字你不能調(diào)用。

function cb (fn) {
    fn()
}
cb(function(){console.log(1)})

你傳入的function (){console.log(1)}有沒有名字?cb函數(shù)能不能調(diào)用它?


fn和fn()的區(qū)別是,后者是前者的返回值。

2018年5月4日 00:42
編輯回答
默念

setInterval第一個(gè)參數(shù)是函數(shù)類型,正常情況應(yīng)該是

setInterval(function(){},1000) 

這么用的,為什么setInterval(fn,1000)可以,因?yàn)閒n是一個(gè)函數(shù)的引用,調(diào)用fn的時(shí)候就相當(dāng)于調(diào)用函數(shù)

SetInterval里面的function(){}不等于(function(){})(),(function(){})()是一個(gè)立即執(zhí)行的函數(shù),返回的是一個(gè)運(yùn)行結(jié)果,里面返回類型不是函數(shù)的話會報(bào)錯(cuò)

2017年2月20日 13:32
編輯回答
逗婦惱

只是一種簡寫,不用理會為什么會這樣,解釋不清的,管用就行;

var fn=function(){};
setInterval(fn,1000)

你扔個(gè)function變量進(jìn)去也行的

2017年5月8日 04:40
編輯回答
故人嘆
let intervalID = window.setInterval(func, delay[, param1, param2, ...]);

所以像這樣的調(diào)用 setInterval(function(){},1000),里面的形參 func,就獲取到了function(){}的引用,在函數(shù)內(nèi)部隨意調(diào)用,
所謂的沒法調(diào)用,也只是指在 setInterval 函數(shù)外部,

類似這樣(function(){})(),
共同點(diǎn)是: 都是匿名函數(shù),沒法使用函數(shù)名遞歸的調(diào)用自己,
不同點(diǎn)是: (function(){})()也沒有賦值給 其他變量,只能被調(diào)用一次,setInterval里面利用 func變量,可以在函數(shù)內(nèi)部調(diào)用多次。

2017年9月20日 04:10