JS anonymous:无名函数的使用

2023-10-26

这个无名函数名字是我起的,起这个名字的原因有两条。原因一是在改前端代码的时候发现这个东西,在调试台console用debug调试,会显示一个anonymous,但你发现他是一个函数。原因二是,这个在w3school上也有,在下面连接页面搜索anonymous,可以看打网站给的两个相关例子,其中据说这个是actually an anonymous function,所以索性就叫它无名函数吧。

连接资料(1)
相关的例子介绍,要注意要搜索一下关键词,负责示例太多你不一定找到这两个

这个没有名字的函数很多语言都有,就是先声明用的时候再赋值,其实函数也可以这样的,C,JS都可以同样的Java也有类似的虚拟函数(然而我了解的不深)。

发现使用这个东西可以模块化,以组件的形式参与进来,比如说页面多个按钮触发都要激活相同的功能,调用成功后又要根据不同的按钮触发返回不同的结果。例如我要做一个试用和购买都要获取用户信息的一个功能,获取成功后试卖要去试卖的页面,购买要去购买的页面。
在这里插入图片描述
代码展示:
(1)两个事件触发
试用事件触发公用的获取用户信息模块:模块返回结果成功触发_doAddShoppingcart

    var _this = this;
    _this.showApplyAuthDialog(function () {
      _this._doAddShoppingcart();
    });
  },

购买事件触发公用的获取用户信息模块:某块结果返回结果成功

 goToCheckOrder:function () {
    var _this = this;
    _this.showApplyAuthDialog(function(){
      _this._doGoToCheckOrder();
    });
  },

(2)公用模块

    var _this = this;
    app.checkUserAuth(function (res) {
      if (res != true) {
        _this.data.applyUserAuthSuccessCallback = successCallback;
        _this.fullScreenModel.showDialog();
      } else {
        if (typeof successCallback === "function"){
          successCallback();
        }
      }
    });
  },

(3)公共用模块处理触发事件(还需要等待用户同意并获取信息成功,这时候applyUserAuthSuccessCallback,已经变成了“successCallback”,而这个successCallback就是事件1,事件2触发时里面的无名函数 function(){ XXXXXX })

  bindGetUserInfo: function (e) {
    var _this = this;
    app.applyUserAuthSuccessCallback(e, function () {
      _this.hideApplyAuthDialog();
      if (typeof _this.data.applyUserAuthSuccessCallback === "function"){
        _this.data.applyUserAuthSuccessCallback();
      }
    });
  },

当初我看这个代码理解的难点是,一是纠结于Java这种强类型的语言,一个变量声明他总有个类型,实际上JS什么的,类型是可以转换覆盖的,前者还是String形式我可以把他改成数字或者变成数组或者对象形式。二是没想到,先声明后赋值函数也可以这么搞,操作真的骚。三是没有看时间出发的哪一步,把这个无名函数错过去了,结果突然发现这个变量变成函数了而不知道这个函数从哪里来。

我要吸取这些代码,不要写胶水那种很混乱的代码,要优美要简洁从设计者的角度去考虑问题去设计代码,代码整洁之道还有设计模式这些书要多看,要多学习好的代码,优秀的代码。不要搞东西都耦合在一起,拆开。命名要规范,设计要合理函数名字是订单处理就是订单处理,订单检查就是订单检查不要搞在一起,可以分成两部分,用的时候再写一个处理订单的函数来调用这两个函数。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS anonymous:无名函数的使用 的相关文章

  • React Native 中无法读取 null 错误的属性“绑定”

    从反应本机运行应用程序时 我在模拟器 设备上收到以下错误消息 ERROR The development server returned response error code 500 URL http 10 0 2 2 8081 inde
  • 在尝试找到最长路径的同时消除有向无环图中的无关边

    我问了一个question https stackoverflow com q 8685598 35690关于在可变数量的集合中查找没有重复字符的子序列 解决方案是创建每对字母的矩阵 丢弃每组中未出现的字母 然后找到最长路径 http en
  • 如何在 JavaScript 中一次出现一个测验问题

    这里是 JavaScript 菜鸟 我正在尝试制作一个正在开发的测验应用程序 但我真的不知道如何继续 我把所有的问题都用html写出来了 情况是这样的 这个测验没有正确答案 只有答案值 该代码应该将每个问题的所有值相加 并根据累积的总分在最
  • 从 vb.net 代码后面调用 javascript

    如何从代码隐藏中调用 javascript 函数 最受欢迎的回应是 ScriptManager RegisterStartupScript 但是 这在我的情况下不起作用 我有一个 vb 类正在执行数据库检查以查看记录是否存在 如果存在 则调
  • 数据表:根据隐藏列值隐藏行

    我在用dataTable在 jsp 中显示我的表的插件 我也想使用复选框选项 像这里的东西 数据表 根据列中的值过滤行 https stackoverflow com questions 29569492 datatables filter
  • 这在 imacros javascript 中可能吗?尝试了很多方法都没有成功

    我已经处理了所有事情 但不幸的是它返回了 未定义 的数据 我尝试了许多不同的方法来从该网站获取数据 不成功 我在其他论坛上发布了这个问题 没有人能够解决这个问题来处理完整的数据提取 我需要像这样保存数据 91 228 53 28 8089
  • 使用javascript函数递归制作星形三角形

    我对编程还很陌生 我正在了解 JavaScript 并且刚刚学习了递归的概念 现在我遇到了一个问题 要创建一个函数 例如const f function n 如果我们用以下方式调用该函数f 5 我们应该看到 垂直星星的数量必须由输入确定 我
  • 以角度实现 canActivate auth 防护

    我有一个带有此函数的服务 它会在令牌有效或无效时返回 true 或 false loggedIn return this http get http localhost 3000 users validateToken map res gt
  • 将内部图像替换为外部图像

    用户单击 蒙版 并上传图像 其显示的同一张图片两次 also Edit文本正在图像上显示 一旦用户单击 编辑文本 我们就会显示pop up box 在那里我们可以看到Zoomin Zoomout按钮正在显示 Issue 一旦我们点击这些按钮
  • 直接将服务注入 AngularJS 指令控制器

    我了解 Angular 依赖注入如何与指令配合使用 但希望澄清一些事情 我有一个虚拟测试指令 如下所示 app directive test function return restrict E scope controller scope
  • JavaScript 在模态窗口关闭时停止 HTML5 视频播放

    我在模态窗口上有一个 html5 视频元素 当我关闭窗口时 视频继续播放 我是 JS 的新手 有没有一种简单的方法将视频播放停止功能与窗口关闭按钮绑定 下面是我的html页面
  • 将属性映射到react-redux中的状态

    我有一个使用的组件state向用户提供数据 例如 div this state variableInState div 该组件可以调度一些方法 例如onClick行动 我目前正在使用react redux an connect映射方法sto
  • 基于一个公共密钥 Angular 2 合并 2 个数组

    我有2个arrays in Angular 2我想根据一个键值合并它们 数组1 columnId 1 type value 1 columnId 2 type value 2 数组2 columnId 1 field field 1 col
  • 将 Session 变量传递给名为 PHP 脚本的 ajax

    在我的 PHP 脚本中使用会话时 我想将会话变量传递给 PHP 调用的脚本 但是会话变量没有被调用 因为在 HTML 代码之后无法使用 session start 函数 我正在使用简单的 Javascript AJAX 请给我路径 我认为您
  • 并行调用一系列 Promise,但按顺序解决它们,而不等待其他 Promise 解决

    我有一系列的承诺 我想并行调用 但同步解析 我编写了这段代码来完成所需的任务 但是 我需要创建自己的对象QueryablePromise包裹原生Promise我可以同步检查它的已解决状态 有没有更好的方法来完成这个不需要特殊对象的任务 请注
  • 将 R data.frame 转换为 Javascript 数组

    我想将数据框的某些列保存为特定格式 JavaScript 格式 我尝试过使用toJSON from rjson包但这不起作用 我的结果应该是这样的 http leaflet github io Leaflet markercluster e
  • 如何使用 jQuery(schema.org 微格式)查找和读取元数据?

    我正在构建一个 Google 地图应用程序 我想读出元数据 如指定的那样schema org http schema org LocalBusiness 从我的 HTML 绘制我的地图标记 例如 li some html div class
  • 使用 JavaScript 创建 csv 文件

    有人可以解释一下是否有一种方法可以将 html5 本地存储数据转换为 csv 文件并将其存储在 ipad 中 我有一个带有一些文本字段的 html 页面 当用户单击提交按钮时 它会存储在 html5 本地存储中 然后我需要使用该数据创建一个
  • node.js http 服务器,检测客户端何时断开连接

    我使用express 和node js 作为http 服务器 我存储响应对象 以便可以将事件流式传输到该通道上的客户端 有没有办法检测客户端何时断开连接 当我杀死我的客户端时 我仍然可以写入响应对象 而不会收到任何类型的异常 错误 看起来只
  • 如何从 url 中提取 &client= ? [复制]

    这个问题在这里已经有答案了 如果我的网址是http link ads blogspot com url http could be any url com name 123456789101112 using 纯JavaScript我该如何

随机推荐

  • RabbitMQ-Java 简单使用

    RabbitMQ Java 入门案例 参考非常详细的博主教程 https www cnblogs com dtdx p 14362760 html SpringBoot Java 版教程 https blog csdn net lgl782
  • 【C/C++】智能指针

    文章目录 1 智能指针的原理 1 1RAII 1 2实现一个自己的智能指针 1 2 1拷贝出现的二次析构问题 2 标准库中的智能指针 2 1std auto ptr 2 2std unique ptr 2 3std shared ptr 2
  • ovs-vswitchd的启动分析

    ovs vswitchd的启动分析 无修改源码 一 主要数据结构和概念了解 1 概念 在 OVS 中 有几个非常重要的概念 Bridge Bridge 代表一个以太网交换机 Switch 一个主机中可以创建一个或者多个 Bridge 设备
  • 解决:DevTools failed to load SourceMap:... net::ERR_HTTP_RESPONSE_CODE_FAILURE的问题

    Google chrome开发人员控制台中一直报此错误 虽然只是一个警告 但是体验还是非常不好 先说解决方案 第一种 在Google chrome浏览器调试工具中 设置该调试工具 点开之后选择Settings 关闭此选项 虽然这种方式是隐藏
  • 小白的福音:零基础入门机器人操作系统ROS

    小小的机器人 如何运作 如何操作 作为一名程序员 你不想了解吗 今天就给大家解密 机器人操作系统ROS 今天分享的课程采用由浅入深 层层递进的讲解方式 让你0基础轻松入门ROS机器人操作系统 并利用ROS框架开发硬件驱动 课程亮点 1 课程
  • Numpy 实现全连接神经网络

    神经网络与深度学习实验报告 一 实验名称 Numpy 实现全连接神经网络 二 实验要求 用 python 的 numpy 模块实现全连接神经网络 网络结构为一个输入层 一个隐藏层 一个输出层 隐藏层的激活函数为 Relu 函数 输出层的激活
  • Qt系列文章之 QTabWidget

    上一篇文章介绍如何对QMessgeBox进行使用 本文紧接上文内容继续对Qt的窗体文件开发介绍 一般主界面会有很多控件和交互区域 如果把所有的控件都放在一个界面全部显示 整个界面就会显得非常臃肿繁琐 那么使用分页式的表格窗体布局就能将不同类
  • STM32 从APP跳入BootLoader问题

    在这次项目中 程序从APP跳入BootLoader主要遇到两个问题 做个记录 1 现象 跳入BootLoader后还没开始升级便重启 原因 APP程序中开启了独立看门狗 当跳入BootLoader时看门狗也继续计时 但并没有重新喂狗 因此导
  • uniapp开发日志

    bug 将Base64的编码解码看错 uniapp封装uni request方法 import utils from js utils js let debug false if process env NODE ENV developme
  • Advanced Computer Network Review(3)——BBR

    这是复习系列的第三篇 主要梳理BBR拥塞控制有关的一些要点 老师给出的复习要点如下 1 基于loss的拥塞控制存在什么问题 为什么 2 理解下面这张图 这篇文章的梳理部分参考了中科大郑烇老师 高级计算机网络 的相关部分 特此声明 一 基于l
  • windows命令行更改文件夹权限

    echo off rem windows命令行更改文件夹权限 Cacls命令使用格式如下 Cacls filename T E C G user perm R user P user perm D user Filename 显示访问控制列
  • Linux下如何查看分区文件系统类型

    1 fdisk l fdisk l 只能列出硬盘的分区表 容量大小以及分区类型 但看不到文件系统类型 2 df h df 命令是用来查看文件系统磁盘空间使用量的 但df 命令只会列出已挂载的文件系统信息 对于没有挂载的文件系统是查看不到的
  • LeetCode -数组数据的插入位置(二分法)

    搜索数组数据插入位置 给定一个排序数组和一个目标值 在数组中找到目标值 并返回其索引 如果目标值不存在于数组中 返回它将会被按顺序插入的位置 数组可能有重复数据 有重复数据时返回 插入到重复数据的第一个位置 示例 1 输入 1 3 6 7
  • Vuforia 官方Demo讲解

    官方原文地址 https library vuforia com articles Solution Native Sample Application Template 今天看到的36氪新闻 高通发布面向VR AR一体机的骁龙XR1芯片
  • MySQL的自定义排序函数 FIELD(str,str1,str2,str3,...)

    FIELD是mysql的自定义排序函数 ORDER BY FIELD str str1 str2 str3 说明 str是字段 str1 str2 是自定义排序的值 举例说明 以上两幅图就看懂FIELD 的用法了吧
  • Vue——get调用后端接口并将数据回显到table中

    get调用 呈现效果 动态获取后台数据 1 HTML lt template gt
  • vue —— 项目启动时无法识别es6的扩展语法

    启动项目报错 解决 ES6的拓展运算符报错 1 切换淘宝镜像 npm install g cnpm registry http registry npm taobao org cnpm install legacy peer deps sa
  • “三项能力超过ChatGPT”,科大讯飞星火大模型现场接受观众挑战,写稿制表PPT通通拿下...

    杨净 发自 合肥量子位 公众号 QbitAI 三项能力超过ChatGPT 1024将整体超过GPT水平 在科大讯飞星火认知大模型发布会现场 董事长刘庆峰拍着胸脯保证 引起现场掌声雷动 而真机演示效果和多场景产品展示直接把观众们看呆 信息量太
  • anaconda pytorch配置

    wvscode配置python编译器时 发现即使在右下角改变编译器版本 任然无法使用anaconda的python 通过在setting中搜索code runner 修改Execution Map中python u中python为anaco
  • JS anonymous:无名函数的使用

    这个无名函数名字是我起的 起这个名字的原因有两条 原因一是在改前端代码的时候发现这个东西 在调试台console用debug调试 会显示一个anonymous 但你发现他是一个函数 原因二是 这个在w3school上也有 在下面连接页面搜索