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

详解什么是call、apply、bind

callapply 和 bind 是 JavaScript 中用于改变函数执行上下文(即 this 的指向)的三个方法。它们都属于 Function.prototype,因此所有函数都可以使用。

1. call的用法:调用一个函数,并指定该函数内部的 this 值,同时可以传递参数,用“”逗号分割

2. apply的用法:与 call 类似,也是调用函数并指定 this 值,但参数是以数组形式传入。

3. bind的用法:创建一个新的函数,并绑定该函数内部的 this 值,不会立即执行函数。

例子:

let dog = {name: '狗狗',age: 2,sayName: function () {console.log('我是', this.name)},eat: function (food1: any, food2: any) {console.log('我喜欢吃', food1 + '和' + food2)}
}let cat = {name: '猫猫',age: 5,
}
//call可以调用函数,改变函数中的this指向
dog.sayName.call(cat)  //我是猫猫
dog.eat.call(cat, '鱼', '猫粮')  //我喜欢吃鱼和猫粮//apply可以调用函数,改变函数中的this指向
dog.eat.apply(cat, ['鱼', '猫粮'])//我喜欢吃鱼和猫粮//bind可以调用函数,改变函数中的this指向
dog.eat.bind(cat, '鱼', '猫粮')//不会立即打印,需要赋值let fun=dog.eat.bind(cat, '鱼', '猫粮')
fun();//我喜欢吃鱼和猫粮

相关文章:

  • mysql专题上
  • 高效视频倍速播放插件推荐
  • (LeetCode 每日一题)135. 分发糖果 ( 贪心 )
  • C++17新特性 函数对象包装器
  • OIer常用的软件
  • win32相关(虚拟内存和物理内存)
  • 【linux 入门】第六章 磁盘分区+网络配置
  • linux 的devmem2 调式使用说明
  • AI入门——AI大模型、深度学习、机器学习总结
  • docker可视化工具
  • Docker 镜像制作
  • 简单工厂模式
  • 【动画】unity中实现骨骼蒙皮动画
  • Flask + Celery 应用
  • NLP学习路线图(十八):Word2Vec (CBOW Skip-gram)
  • 学习STC51单片机25(芯片为STC89C52RCRC)
  • 九(3).引用作为方法别名返回
  • 【Godot】如何导出 Release 版本的安卓项目
  • 如何增加 cPanel中的 PHP 最大上传大小?
  • 电脑故障基础知识
  • 做短裙的视频网站/初学seo网站推广需要怎么做
  • 做网站建设推广好做吗/厦门seo网站优化
  • 医疗营销网站建设/美橙互联建站
  • 建站模版/企业网站建设推广
  • 郑州网站优化排名推广/2023年7 8月十大新闻
  • 温州做外贸网站设计/网站seo优化怎么做