当前位置: 首页 > news >正文

北京产品网站设计哪家专业1分钟视频制作报价明细

北京产品网站设计哪家专业,1分钟视频制作报价明细,游戏网站制作,大网站有哪些文章目录 一、bind() 方法1、概述2、核心特性2.1、永久 this 绑定2.2、参数预设2.3、构造函数兼容性 3、工作原理4、常见问题 一、bind() 方法 1、概述 bind() 是 JavaScript 函数对象的一个内置方法,它创建一个新的函数(称为"绑定函数"&…

文章目录

  • 一、`bind()` 方法
    • 1、概述
    • 2、核心特性
      • 2.1、永久 `this` 绑定
      • 2.2、参数预设
      • 2.3、构造函数兼容性
    • 3、工作原理
    • 4、常见问题

一、bind() 方法

1、概述

bind() 是 JavaScript 函数对象的一个内置方法,它创建一个新的函数(称为"绑定函数"),这个新函数的 this 值会被永久绑定到指定的对象。与 call()apply() 不同,bind() 不会立即执行函数,而是返回一个准备就绪的新函数。基本语法,如下:

const boundFunc = originalFunc.bind(thisArg[, arg1[, arg2[, ...]]])

2、核心特性

2.1、永久 this 绑定

bind() 创建的绑定函数会永久锁定 this 值,即使使用 call()apply() 也无法改变:

const obj = { value: 42 };
function getValue() { return this.value; }const boundGetValue = getValue.bind(obj);
console.log(boundGetValue()); // 42
console.log(boundGetValue.call({ value: 100 })); // 仍然是 42

2.2、参数预设

bind() 可以预先设置函数的部分参数:

function greet(greeting, name) {console.log(`${greeting}, ${name}!`);
}// 预设第一个参数
const sayHello = greet.bind(null, "Hello");
sayHello("Alice"); // 输出: "Hello, Alice!"// 预设多个参数
const sayHiToBob = greet.bind(null, "Hi", "Bob");
sayHiToBob(); // 输出: "Hi, Bob!"

2.3、构造函数兼容性

当绑定函数被用作构造函数时(使用 new 调用),原始 this 绑定会被忽略:

function Person(name) {this.name = name;
}const BoundPerson = Person.bind({ x: 1 });
const p = new BoundPerson('Alice');
console.log(p.name); // "Alice" (不是 {x:1})

3、工作原理

JavaScript 引擎处理 bind() 时大致执行以下步骤:

  1. 创建一个新函数对象
  2. 将原函数的代码复制到新函数
  3. 设置新函数的内部 [[BoundThis]] 属性为指定的 thisArg
  4. bind() 的其他参数存储为 [[BoundArgs]]
  5. 返回这个新函数

当调用绑定函数时:

  1. 创建一个新的执行上下文
  2. this 设置为 [[BoundThis]] 的值
  3. [[BoundArgs]] 和调用时传入的参数合并
  4. 执行原函数的代码

4、常见问题

问题1:为什么箭头函数不需要 bind

箭头函数没有自己的 this,它会捕获所在上下文的 this 值,且无法通过 bind 改变。

问题2:bind()call()/apply() 的主要区别是什么?

bind() 返回一个新函数而不立即执行,且 this 绑定是永久的;call()/apply() 立即执行函数且只影响当前调用。

问题3:能否对同一个函数多次 bind

可以,但只有第一次 bind 有效,后续 bind 无法覆盖已绑定的 this 值。

http://www.dtcms.com/a/531438.html

相关文章:

  • 中国建设招标网?官方网站网站建设推广公司需要哪些岗位
  • 现在网站做SEO怎么样怎样做网站內链
  • 做的网站为什么图片看不了怎么回事功能网站建设
  • 如何免费建网站家装设计网页论文
  • 网站推广全过程深圳企业网站建设制作网络公司
  • 浙江省建设厅官方网站ui设计师培训费用
  • 普洱高端网站建设价格企业网站需要注意什么
  • 白沙网站建设的目标免费的app下载网站
  • 广州公司网站设计制作centos7 wordpress搭建
  • 建设网站要注意什么问题企业产品推广平台
  • 北师大 网页制作与网站建设 考试阳性几天就不传染人了
  • wordpress适合建什么网站吗e福州电子公交卡
  • 陕西建设网站电子政务大厅大健康品牌策划公司
  • wap网站 什么意思建站方案书
  • 品牌网站设计服务食品建设网站的目的
  • 网站可以用什么做义乌进货网平台
  • 邮箱注册过的网站查询云翼计划wordpress
  • 贵阳有哪家做网站建设好点的触摸网站手机
  • 网站制作建设飞沐长沙做医院的网站建设
  • 格子铺网站建设方案企业公示信息查询系统陕西
  • 医院关于建设官方网站的请示天翼云主机怎么建设网站
  • 建一个私人彩票网站2023网页游戏排行榜
  • 网站宣传夸大处罚手机兼职赚钱一单一结学生
  • 做什么网站广告拍摄
  • 沧州网站建设公司株洲网站的建设
  • 网站标题大全网站建设项目化教程
  • wordpress查看数据库密码苏州网站优化建设
  • 做网站还有钱赚吗什么语言建手机网站
  • wordpress is page西安seo招聘
  • 建设网站都需要哪些资料如何提升网站的收录量