6.1 Javascript:事件与回调函数

事件

当页面要发生一些事情或做一些事情时,我们称其为事件。事件是网页自带的属性,如click、mousemove、load等。
响应某个事件的函数则称为事件处理程序,或者叫做事件侦听器

回调函数

调函数,,指一个函数A被作为参数传递给另一个函数B,回调函数A会在函数B内被调用(或执行)。回调函数的本质是一种模式,因此回调函数也被称为回调模式。在这里,函数A被称为回调函数

深度理解

函数也只不过是个值,要么返回一个值,要么为空值
所以把它当成一个数据来处理即可

例:

另一种声明函数的方式

var showName=function(name){//函数名称即为变量名称
    alert("Your name is "+name+", your number is "+outValue());
    //在这里,函数主体outValue即是变量值
    //采用这种表达方式时,又称为函数字面量
    }
//当函数主体单独出现而没有名称时,被称为函数字面量

var name=showName;
通过这句代码,可以看出,函数可以像变更般操纵
说白了,函数只是一个值引用到函数主体的变量

函数的调用与引用

调用函数:
var value=outValue();//outValue()为调用一个函数(也是函数字面量)
引用函数
var value=showName;//其实,showName是指向一个函数主体的引用

事件,回调,与HTML属性

回调函数最常用于处理事件

利用Html属性联结回调函数与事件

<body onload="showName();">
    <img src="..." onclick="showImage()"/>
body>

onload是Html标签的属性,它的作用是把showName()函数与onload事件联结
onclick是Html标签的属性,它的作用是把showImage()函数与onclick事件联结

利用函数引用,分离Html与Javascript代码

使用函数引用设定回调函数
window.οnclick=showName;
onclick是window对象的属性,showName为函数引用
当onlick事件被触发后,将执行showName引用所指向的函数
这些代码完全可以在Javascript中书写代码,使得Html与Jvavascript代码分离

通过函数字面量来传递参数

使用函数字面量作为函数引用,而后从函数字面量内调用相应的回调函数

function helloName(name)
{
    //输出“Hello WeAreZero”的带参函数
    alert("Hello "+name);
    }
window.onclick=function(evt)//函数字面量function()作为函数引用指派给onclick事件
{
    //在这里,函数字面量function(evt)完成了对helloName()的调用
    helloName("WeAreZero");
    }

在这里,函数字面量是一个没有名字的函数,所以又叫匿名函数
evt参数将事件对象作为参数传递给事件入事件处理器,但在这里没有用到evt参数

总结

将事件与函数联结,并实现Html代码与Javascript代码分离,不仅利于代码直观性与维护,而且函数会使你Javascript的本领更上一层楼!

你可能感兴趣的:(JavaScript笔记)