UBAINS

 找回密码
 立即注册
搜索
热搜: UBAINS
查看: 1893|回复: 0

[学习笔记] 回调函数

[复制链接]

10

主题

11

帖子

447

积分

版主

Rank: 7Rank: 7Rank: 7

积分
447
QQ
发表于 2020-10-28 18:17:24 | 显示全部楼层 |阅读模式
本帖最后由 pidtfork 于 2020-10-28 18:19 编辑


回调函数


JavaScript中的函数


在javascript中,函数是比较奇怪的,但它确确实实是对象。确切地说,函数是用Function()构造函数创建的Function对象。Function对象包含一个字符串,字符串包含函数的javascript代码。


  1. //可以这样创建函数fn 返回两个参数的乘积
  2. varfn = new Function("arg1", "arg2", "return arg1 *arg2;");
  3. fn(2, 3); //6

  4. // 一个例子函数
  5. function say(value) {
  6.     returnvalue
  7. }
  8. console.log(say); //function say (value) {return value}
  9. console.log(say('abc123')); //'abc123'
复制代码




对于 say 函数而已

只写变量名 say 返回的将会是 say方法本身,以字符串的形式表现出来。

而在变量名后加 () 如 say() 返回的就会使say方法调用后的结果,这里是打印传入的参数。

函数名表示函数方法本身,这样做的一个好处,可以传递代码给其他函数,也可以传递变量或者对象(因为代码字面上只是对象而已)



什么是JavaScript回调函数

函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。 我们就说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。


写一个回调函数

  1. function fa(data){
  2.     console.log("run fa data = "+data);
  3. }
  4. function getUser(value,callback){
  5.     if(value) {
  6.         callback(value);
  7.     }
  8. }
  9. //fa是getUser的回调函数
  10. getUser(1,fa);  //run fa data = 1
  11. //这里是匿名回调函数
  12. getUser(100,function(data){
  13.     console.log("hello data = " +data);
  14. });  //hello data = 100

  15. getUser(0,fa);  //不执行回调函数fa
复制代码




改进一下

  1. //回调函数执行逻辑处理后返回处理值
  2. function fa(data){
  3.     if(data > 100) {
  4.         return "ubains"
  5.     }
  6.     return "6666"
  7. }
  8. //先判断参数是不是函数再回调,并返回回调执行的结果
  9. function getUser(value,callback){
  10.     /****
  11.     *  其他的业务逻辑代码
  12.      */
  13.     if(typeofcallback == "function") {
  14.         return callback(value);
  15.     }
  16. }
  17. vars = getUser(1,fa);
  18. console.log(s);  //6666
  19. console.log(getUser(101,fa)); //ubains

复制代码



高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

Archiver|手机版|小黑屋|BBS.UBAINSYUN.COM

GMT+8, 2024-4-19 22:59 , Processed in 0.035790 second(s), 19 queries .

Powered by UBAINS! X3.4

© 2001-2017 UBAINS Inc.

快速回复 返回顶部 返回列表