函数只是数据
函数只不过是变量!其中关键在于,把函数主体看成值,函数名则为变量名称,我们来看看一种创建函数的方法:
var showSeatStatus=function(seatNum){
alert("this seat is"+ getSeatStatus(seatNum)+"。");
var myShowSeatStatus=showSeatStatus;
}
这种表达方式叫做,函数字面量。
当函数主题出现,但没有名称时,就叫函数字面量。
调用或引用你的函数
alert(showSeatStatus(23));
调用myShowSeatStatus()与调用showSeatStatus()效果相同,因为两个函数最后都引用了相同的代码。因此函数名称也被称为函数引用。
回调函数
回调函数最常用于处理事件,如onclick()/onload()等等
<body onresize="resizebody();">
透过HTML属性,联结”事件处理函数“与”其他函数“的技巧确实行得通,但却需要让javascript和HTML代码耦合。
使用函数引用联结事件
可以直接在javascript代码中指派函数引用作为事件处理器,以取代使用html属性。只要使用函数引用设定回调函数,一切都来自javascript代码内部:
window.onload=initSeats;
onload事件是window对象的性质,函数名后面没有括号:因为此时***并非运行函数***,而是***想引用函数***!
这样就相当于利用函数字面量解耦合了。
同理还有:
document.getElementById("seat26").onclick=function(evt){
showSeatStatus(26);
};//设置了点击事件