首页 > 编程语言 >JavaScript学习笔记—函数的bind

JavaScript学习笔记—函数的bind

时间:2023-01-25 12:55:31浏览次数:43  
标签:obj bind JavaScript 笔记 window arrowFn const fn

bind():函数的方法,可以用来创建一个新的函数

  • bind可以为新函数绑定this
  • bind可以为新函数绑定参数
function fn(a, b, c){
  console.log("fn执行了~~~", this);
  console.log(a,b,c);
}
const obj = {name: "孙悟空"};
const newFn = fn.bind(obj, 10); // 10 设置默认固定值,传参时无法再修改
newFn(20, 30, 40); // fn执行了~~~ obj 10 20 30

箭头函数:没有自身的this,它的this由外层作用域决定,也无法通过call apply和bind修改它的this,箭头函数中没有arguments

const obj = {name: "孙悟空"};
const arrowFn = () => {
  console.log(this);
};
arrowFn(); // window
arrowFn.call(obj); // window
arrowFn.apply(obj); // window
const newArrowFn = arrowFn.bind(obj); 
newArrowFn(); // window

class MyClass {
  fn = () => {
    console.log(this);
  }
}
const mc = new MyClass();
mc.fn.call(window); // MyClass

标签:obj,bind,JavaScript,笔记,window,arrowFn,const,fn
From: https://www.cnblogs.com/zibocoder/p/17066851.html

相关文章

  • JavaScript学习笔记—函数中的call和apply
    调用函数除了通过函数()这种形式外,还可以通过其他的方式来调用函数,比如可以通过调用函数的call()和apply()两个方法来调用函数函数.call()函数.apply()call和apply除......
  • JavaScript学习笔记—可变参数
    可变参数可以接收任意数量实参,并将他们统一存储到一个数组中返回可变参数的名字可以自己指定可变参数就是一个数组,可以直接使用数组的方法可变参数可以配合其他参数一......
  • 笛卡尔树学习笔记
    笛卡尔树下文的资料多摘自OIWiki性质笛卡尔树是一种二叉树,每一个节点都由一个键值二元组\((k,w)\)构成。要求\(k\)满足二叉搜索树的性质,而\(w\)满足堆的性质。如......
  • 【Windows】笔记本查看电池报告
    ✨笔记本查看电池报告可以使用如下命令生成电池报告powercfg/batteryreport使用浏览器打开生成的html文件即可查看关于此设备详细的电池报告默认保存在用户目录下,保......
  • 微机原理与系统设计笔记2 | 8086CPU结构与功能
    打算整理汇编语言与接口微机这方面的学习记录。本部分讲解8086CPU的结构和基本功能以及特性。参考资料西电《微机原理与系统设计》周佳社西交《微机原理与接口技术》......
  • 4.2 JavaScript 执行上下文与作用域
    一、执行上下文JavaScript执行上下文是指JavaScript引擎在执行代码时的环境。它包含了代码所需的所有信息,包括变量对象、作用域链、this对象等。JavaScript引擎在执......
  • 适合编程初学者的开源云笔记系统(Python版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......
  • 适合编程初学者的开源云笔记系统(PHP版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......
  • 适合编程初学者的开源云笔记系统(NodeJS版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......
  • 适合编程初学者的开源云笔记系统(Go语言版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。让想学编程的,一个都不落下。上述基本涵盖了当前编程开发所有主流语言。左侧为前端版本:安卓、iOS、鸿蒙......