一、主动执行函数。
众所周知,函数一般有下面几种表现方式: 第一种:函数声明
function demo_one(){ console.log("this is demo-one"); }
第二种:函数表达式
var demo=function(){ console.log("this is demo-two"); }
第三种:匿名表达式
function(){ console.log("this is demo-three"); } var name="maomin"; function main(){//这里是声明一个叫mian函数,简单的叫做函数体,现在还不是函数表达式。 console.log(this.name);//输出 maomin } main();
这里的main函数称为主动执行函数,什么叫主动执行函数呢?就是立即执行的函数啊。显然,最初声明的函数体如果没有下面的mian(),就不能执行,这里的main()叫做函数调用,先声明后调用。
var main=function(){ console.log(this.name);//输出maomin,这里是函数表达式。 } main();
首先一个函数体要想执行必须先成为函数表达式,成为函数体之后在函数体后面加上()就可以执行了。下面是几个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));
以上两种是将函数声明通过(、!、+、-,转换成函数表达式,转换成函数表达式就可以在后面加上(),就可以立即执行了。
总之,函数体要想执行那个首先成为函数表达式,然后在函数体后面加上()调用它,
二、延时触发函数。
var a=document.querySelector("body"); a.onclick=function(){ alert("被点击了!") } var time=setInterval(function(){ var name="maomin"; console.log(this.name) },2000)
当事件被执行时,函数才被执行。这叫做延时触发函数