在JS中,函数可以作为参数传递给函数(其实是传递的函数的定义),不止可以传递值或者对象,案例如下:
定义:
/**
*@project: data_overnance
*@package:
*@date:2018/11/30 0030 15:07
*@author 郭宝
*@brief: 回调函数
*/
export default class Person {
constructor(){
}
/**
* 设置名称
* @param nameCallback 传入回调函数(函数的定义)
*/
setName(nameCallback){
//弹出输入对话框
let name = prompt("请输入你的名字");
//调用回调函数
nameCallback(name);
}
}
调用:
//实例化Person对象
let person = new Person();
//10以后执行内部代码
setTimeout(function () {
//调用Person类中的setName函数,并传入匿名回调函数
person.setName(function (name) {
console.log("name:"+name);
//name:guobao
})
},10000);
该回调函数类似于JAVA中的接口回调,熟悉JAVA接口回调的同学对JS中的回调函数会更容易上手