美文网首页
闭包和回调函数

闭包和回调函数

作者: 缘之空_bb11 | 来源:发表于2025-05-27 13:11 被阅读0次
   // 点击调用方法
   buttonClick(index) {
      this.initWarpRect((str) => {
            console.log("======我是后后后后后后===", str);
        })
    },

    // 定义方法
     initWarpRect(success) {
        setTimeout(() => { 
            console.log("====我是延时函数===");
            success('你好啊')  // 调用回调函数并传参数
        }, 5000)
        console.log("====开始初始化了===");
    },

打印:
====开始初始化了===
====我是延时函数===
======我是后后后后后后=== 你好啊

在JavaScript中,success作为参数传入函数后仍然可以被调用,这是因为函数在JavaScript中是一等公民,可以作为参数传递和调用。具体原理如下:

函数作为参数传递:

  • JavaScript中函数可以像普通变量一样被传递
  • 传入的success参数实际上是一个函数引用
  • 通过success()语法可以执行该函数

闭包保持引用:

  • 箭头函数形成的闭包保留了对外部作用域中success的引用
  • 即使外部函数执行完毕,内部函数仍能访问success参数

回调函数机制:

  • 这是典型的回调函数设计模式
  • 调用方传入一个函数作为"完成后的处理逻辑"
  • 被调用方在适当时机执行该回调函数

我的理解: 用户点击后会调用this.initWarpRect方法, 进入方法后进行延时函数的调用; 这是将结果调用success('你好啊') , 此时调用()=>{ } 箭头函数.

相关文章

  • 【Swift】关于闭包的几种写法

    闭包 闭包是一个特殊的函数,经常用于回调 简单举个例子:在方法中定义闭包实现回调传值 尾随闭包:1.如果闭包是函数...

  • 闭包和回调函数

    闭包 函数A内定义了一些变量和内部函数B,而且在B中使用了A的变量,然后返回函数B,那么B就称为A的闭包(闭包也是...

  • ★ 回调函数、闭包

    普通函数和回调函数有什么区别? 什么是闭包? 普通函数和回调函数主要是在调用方式上的区别: 普通函数的调用:调用程...

  • 第02天(函数、工程管理)_03

    11_函数类型.go 12_回调函数.go 13_匿名函数和闭包.go 14_闭包捕获外部变量的特点.go 15_...

  • 闭包--Closure

    学习Ajax模式之前,需要对闭包和回调函数的概念有所理解. 闭包的概念 当一个函数内调用另一个函数,同时这个函数引...

  • Swift基础语法-闭包,闭包函数回调,尾随闭包,闭包捕获值,循

    本节知识点 闭包的基本概念 闭包基本使用 闭包表达式作为回调函数 闭包的多种写法(尾随闭包) 闭包表达式优化 闭包...

  • 4 iOS类微信日志2018-01-13

    Swift 闭包的使用 步骤: 1. 声明闭包 2. 声明闭包的别名属性 3. 设置回调函数 4. 调用闭包 声明...

  • Day4 闭包

    闭包允许函数访问定义时的词法作用域回调函数基本上都是闭包模块利用闭包隔离变量,暴露公共API(也会伴随IIFE立即...

  • go 基本函数

    多返回值函数 递归 函数类型 type 回调函数 和多态(强大) 匿名函数 与 闭包 关键字defer(defer...

  • 前端的知识点和工具链

    JavaScript的特点 弱类型语言 函数是第一公民 回调 闭包 Promise async 和 await J...

网友评论

      本文标题:闭包和回调函数

      本文链接:https://www.haomeiwen.com/subject/czikwjtx.html