你聽(tīng)過(guò)js中函數(shù)執(zhí)行嗎
一、主動(dòng)執(zhí)行函數(shù)。
眾所周知,函數(shù)一般有下面幾種表現(xiàn)方式:
第一種:函數(shù)聲明
function demo_one(){
console.log("this is demo-one");
}
第二種:函數(shù)表達(dá)式
var demo=function(){
console.log("this is demo-two");
}
第三種:匿名表達(dá)式
function(){
console.log("this is demo-three");
}
var name="maomin";
function main(){//這里是聲明一個(gè)叫mian函數(shù),簡(jiǎn)單的叫做函數(shù)體,現(xiàn)在還不是函數(shù)表達(dá)式。
console.log(this.name);//輸出 maomin
}
main();
這里的main函數(shù)稱(chēng)為主動(dòng)執(zhí)行函數(shù),什么叫主動(dòng)執(zhí)行函數(shù)呢?就是立即執(zhí)行的函數(shù)啊。顯然,最初聲明的函數(shù)體如果沒(méi)有下面的mian(),就不能執(zhí)行,這里的main()叫做函數(shù)調(diào)用,先聲明后調(diào)用。
var main=function(){
console.log(this.name);//輸出maomin,這里是函數(shù)表達(dá)式。
}
main();
首先一個(gè)函數(shù)體要想執(zhí)行必須先成為函數(shù)表達(dá)式,成為函數(shù)體之后在函數(shù)體后面加上()就可以執(zhí)行了。下面是幾個(gè)demo.
1.
!function main(){
console.log("this is !");
}();
// or
!function(){
console.log("this is wuming");
}
(function(age){
console.log(age);
})(21);
// or
(function(money){
console.log(money);
}(100));
以上兩種是將函數(shù)聲明通過(guò)(、!、+、-,轉(zhuǎn)換成函數(shù)表達(dá)式,轉(zhuǎn)換成函數(shù)表達(dá)式就可以在后面加上(),就可以立即執(zhí)行了。
總之,函數(shù)體要想執(zhí)行那個(gè)首先成為函數(shù)表達(dá)式,然后在函數(shù)體后面加上()調(diào)用它,
二、延時(shí)觸發(fā)函數(shù)。
var a=document.querySelector("body");
a.onclick=function(){
alert("被點(diǎn)擊了!")
}
var time=setInterval(function(){
var name="maomin";
console.log(this.name)
},2000)
當(dāng)事件被執(zhí)行時(shí),函數(shù)才被執(zhí)行。這叫做延時(shí)觸發(fā)函數(shù)
作者:Vam的金豆之路
主要領(lǐng)域:前端開(kāi)發(fā)
我的微信:maomin9761
微信公眾號(hào):前端歷劫之路