首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【春节日更】瞅瞅,你是否了解 bind 方法 ?

【春节日更】瞅瞅,你是否了解 bind 方法 ?

作者头像
用户9914333
发布2022-07-22 14:12:04
发布2022-07-22 14:12:04
2790
举报
文章被收录于专栏:bug收集bug收集

今天给大家介绍 Function.prototype.bind() 方法

先来看道相关题目:

代码语言:javascript
复制
 function f(y,z){
    return this.x+y+z;
  }
  var m = f.bind({x:1},2);
  console.log(m(3));

答案多少呢?

思考?

思考?

思考?

结果为:6

你对了嘛!!!哈哈哈

没对就好好看看下面的介绍吧

01

bind 方法

首先,bind 方法,是指 Function.prototype.bind()

MDN官方说明:

bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。

将上面的描述,总结为以下三点:

1、bind() 方法会创建一个新的函数

2、这个新函数的 this 被指定为 bind() 的第一个参数

3、其余参数将作为新函数的参数

了解了关于bind的说明,再来看看题目

02

题目解析

回顾:

代码语言:javascript
复制
function f(y,z){
    return this.x+y+z;
  }
  var m = f.bind({x:1},2);
  console.log(m(3));

解析:

1、m 是 bind() 返回的新函数

2、调用m函数时,会执行函数 f ,但 f 中的this 指的就是bind的第一个参数,即{x:1} ;故this.x 值为1

3、bind函数,从第二个参数起,会依次传递给原始函数,这里的第二个参数2,即是 f 函数的 y 的值

4、剩余的参数做为新函数的参数,故 m(3) 的时候,这里的 3 就是参数z了

5、故:结果为 1+2+3=6

现在了解了嘛,如有问题欢迎私信

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档