doubleyong
管理员
管理员
  • 最后登录2025-12-02
  • 发帖数1198
  • 最爱沙发
  • 喜欢达人
  • 原创写手
  • 社区居民
  • 忠实会员
阅读:5055回复:0

[Javascript]瞅瞅,你是否了解 bind 方法 ?

楼主#
更多 发布于:2021-02-15 11:30
今天给大家介绍 Function.prototype.bind() 方法


先来看道相关题目:

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 题目解析


回顾:

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


现在了解了嘛,如有问题欢迎留言







如果喜欢这篇文章,欢迎添加右下角 "公众号",可以第一时间获到文章推送
知识需要管理,知识需要分享
游客


返回顶部

公众号

公众号