你聽(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):前端歷劫之路