匿名/箭头函数,立即执行函数IIFE;函数声明式和函数表达式

这篇具有很好参考价值的文章主要介绍了匿名/箭头函数,立即执行函数IIFE;函数声明式和函数表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

匿名/箭头函数:简洁

继承上一层作用域链的this

不绑定arguments,用rest参数

 rest 参数:...真正的数组

因为没有function声明,所以没有原型prototype,所以不能作为构造函数

当函数体只有一句时,可省 return , {}

IIFE:()()(立即调用函数表达式)/自执行匿名函数

函数定义方式

A.函数声明:function变量提升

B.函数表达式:const暂时性死区

应用:React

this:组件实例

bind:constructor、标签

()=>:calss、标签


匿名/箭头函数:简洁

继承上一层作用域链的this

不绑定arguments,用rest参数

 rest 参数:...真正的数组

function sum(...numbers) {
  let total = 0;
  for (let number of numbers) {
    total += number;
  }
  return total;
}

console.log(sum(1, 2, 3)); // 输出 6

因为没有function声明,所以没有原型prototype,所以不能作为构造函数

当函数体只有一句时,可省 return , {}

const fun = () => "S";
console.log(fun());// "S"
console.log((() => "S")());// "S"
console.log(() => "S");// () => "S"

IIFE:()()(立即调用函数表达式)/自执行匿名函数

  1. 第一部分是一个具有词法作用域的匿名函数,并且用圆括号运算符 () 运算符闭合起来。这样不但阻止了外界访问 IIFE 中的变量,而且不会污染全局作用域
  2. 第二部分创建了一个立即执行函数表达式 (),通过它,JavaScript 引擎将立即执行该函数。
(function () {
  // …
})();

(() => {
  // …
})();

(async () => {
  // …
})();

函数定义方式

A.函数声明:function变量提升

类内function不用function声明,但也可变量提升

   function add(x, y) {
     return x + y;
   }

B.函数表达式:const暂时性死区

const、let、calss不会提升

   const add = function(x, y) {
     return x + y;
   };

应用:React

this:组件实例

无论时类组件还是函数组件,都是用箭头函数表达式避免this问题

bind:constructor、标签
()=>:calss、标签

匿名/箭头函数,立即执行函数IIFE;函数声明式和函数表达式,ES重难点,react,开发,javascript,前端,开发语言文章来源地址https://www.toymoban.com/news/detail-805871.html

import React, { Component } from 'react'; // 请确保导入 React 和 Component

class APP extends Component {
  constructor(props) {
    super(props);
    // 将 handleClick 方法绑定到组件实例的上下文
    this.handleClick5 = this.handleClick5.bind(this);
  }
  handleClick1(ev) {
    console.log(this);//undefined
    console.log(ev);//合成的SyntheticBaseEvent 
    console.log(ev.target);//button
  }
  //箭头函数
  //方法A:类中箭头
  handleClick2 = () => {
    console.log(this);//APP类组件实例
  }
  //方法B:onclick中箭头
  handleClick3() {
    console.log(this);//APP类组件实例
  }
  // bind绑定组件实例this
  // 方法A:onclick
  handleClick4() {
    console.log(this);   //APP类组件实例
  }
  // 方法B:constructor
  handleClick5() {
    console.log(this); //APP类组件实例  
  }

  render() {
    return (
      <div>
        <button onClick={this.handleClick1}>点击1</button>
        {/* 箭头函数 */}
        <button onClick={this.handleClick2}>点击2</button>
        <button onClick={() => { this.handleClick3() }}>点击3</button>
        {/* bind */}
        <button onClick={this.handleClick4.bind(this)}>点击4</button>
        <button onClick={this.handleClick5}>点击5</button>
      </div>
    );
  }
}

export default APP;

到了这里,关于匿名/箭头函数,立即执行函数IIFE;函数声明式和函数表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Go 基础篇】Go语言匿名函数详解:灵活的函数表达式与闭包

    在Go语言中,函数是一等公民,这意味着函数可以像其他类型的值一样被操作、传递和赋值。匿名函数是一种特殊的函数,它没有固定的函数名,可以在代码中被直接定义和使用。匿名函数在Go语言中具有重要的地位,它们常用于实现闭包、函数式编程和并发编程等领域。 本

    2024年02月11日
    浏览(38)
  • 【C#进阶】C#中的委托、事件、回调函数、匿名函数和lambda表达式

    委托是一种类型,它可以存储对一个或多个方法的引用。它类似于C/C++中的函数指针,允许您将方法作为参数传递、存储和调用。 写法: delegate return_type delegate_name( ); return_type :表示委托所引用方法的返回类型。 delegate_name :表示委托的名称。 parameters :表示委托所引用方法

    2024年02月06日
    浏览(47)
  • vue3 setup中函数表达式和函数声明

    随着 Vue 3 中 Composition API 的引入,现在可以通过函数表达式和函数声明这两种方式声明函数。 函数声明是在非函数式编程语言中声明函数的传统或正常方式。以 function 开头,后跟函数名称、一对括号,最后是一对括住函数体的花括号。 这是一个例子: 函数声明的一个

    2024年02月13日
    浏览(29)
  • 【C++】STL 算法 ② ( foreach 循环中传入 函数对象 / Lambda 表达式处理元素 | foreach 循环算法 | Lambda 表达式 - 匿名 函数对象 / 仿函数 )

    在 C++ 语言中 , std::foreach 循环 虽然 不是标准库的一部分 , 但是 C ++ 编译器 提供了对 该语法 的支持作为扩展 ; 使用 该 std::foreach 循环 , 可以用于 遍历 STL 标准模板库 中提供的容器 , 如 vector 单端数组 , list 双向链表 , map 映射 , set 集合 等 容器 中的元素 ; std::for_each 是一个算

    2024年02月02日
    浏览(53)
  • Js:变量类型,代码块,++前后区别,函数声明/表达式,debuger调试,元素/event/window大小和位置

    语法: 注意: 只有在js文件才可以自动补全 @param 。vue文件只会显示 /** */ 上述注释中 @description 和 @return 是自定义的代码片段,快捷键 jsfn 作用: 在vue文件引入方法后,可以查看方法的注释说明,规范代码。 方法中变量快捷打印, 第一步选中方法的 变量 进行 复制 第二步

    2023年04月08日
    浏览(26)
  • 认识Vue;vue使用和安装;声明式和命令式编程;MVVM模型;data属性;methods属性

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式 JavaScript框架。 全称是Vue.js或者Vuejs; 它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型; 帮助你高效地开发用户界面,无论任务是简单还是复杂; 渐进式框架? 表示可以在项目

    2024年02月14日
    浏览(28)
  • C# 匿名方法和Lambda表达式

    1.匿名方法的演变 匿名方法是为了简化委托的实现,方便调用委托方法而出现的,同时,匿名方法也是学好lambda表达式的基础。在委托调用的方法中,如果方法只被调用一次,这个时候我们就没有必要创建具名方法,从而用匿名方法更为方便。 下面一段代码是声明并使用了一

    2024年02月15日
    浏览(33)
  • Lambda表达式和匿名内部类的区别

    匿名内部类:可以是接口,也可以是抽象类,还可以是具体类 Lambda表达式:只能是接口 如果接口中有且仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类 如果接口中多于一个抽象方法,只能使用匿名内部类,而不能使用Lambda表达式 匿名内部类:编译之后,产

    2024年02月10日
    浏览(41)
  • CSharp的lambda表达式匿名类扩展方法

    之前已经写过一些关于委托还有事件的文章,今天就来介绍一下lambda表达式。 首先定义需要的函数以及委托 在.net farmwork 1.0,会这样写我们的匿名函数 在.netframework 2.0,会这样写匿名函数, 增加了一个delegate 在.netframework3.0,去掉了delegate了,在参数后增加了一个=

    2024年03月14日
    浏览(69)
  • C#学习相关系列之匿名方法和Lambda表达式

            匿名方法 顾名思义就是这类方法的特点是不需要特别去定义函数的名字的。一般我们需要一个函数,但又不想花时间去命名它的时候,就可以使用匿名方法。在 C# 中, 匿名方法通常表现为使用 delegate 运算符和 Lambda 表达式。( Lambda 表达式 的本质也是 匿名方法

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包