“调用/应用”和“绑定”之间有什么区别[重复]

2023-12-26

var obj = {
   x: 81,
   getX: function() { 
     console.log( this.x) 
   }
};
var getX = obj.getX.bind(obj);//use obj as 'this';
getX();//81
var getX = function(){
  obj.getX.apply(obj); 
}
getX();//also 81

bind 和 call/apply 的使用看起来很相似,我想知道它们之间有什么区别。上面的两个 getX 函数是一样的吗?


bind返回一个函数,其行为类似于原始函数,但具有this预定义的。当您想要将函数传递给事件处理程序或其他异步回调时,通常使用它。

call and apply将立即调用一个函数,让您指定this以及函数将接收的任何参数。

您的第二个示例定义了一个匿名函数,该函数调用apply。这是一种常见的模式;bind提供了一个标准实现,允许您通过简单的函数调用来完成此操作(从而更快更容易编写)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“调用/应用”和“绑定”之间有什么区别[重复] 的相关文章

随机推荐

  • 在触摸 MapView 之前视图不会更新

    我有一个主要由一个大地图视图组成的活动 在该 MapView 之上 我还有一些其他视图正在尝试以编程方式与之交互 当我尝试使用 AnimationListener 对 MapView 顶部的其中一个视图进行动画处理时 出现了第一个问题 在我
  • 远程发起人停止被调用

    我有一个应用程序 它在单个进程中创建多个应用程序域 并通过远程处理在它们之间进行通信 我为所有对象创建赞助商以防止它们被垃圾回收 但是 无论如何 有些人最终还是获得了GCed 经过一番调查后 我确定取决于InitialLeaseTime在我
  • 使用 Moment 的guess() 返回时区名称

    我想用时刻的guess 函数 https momentjs com timezone docs using timezones guessing user timezone 返回时区大陆 或国家 和城市 如示例所示 moment tz gu
  • Spring JPA 中跨两个不同数据库表的查询

    我有三张桌子 表1在DB1中 表2和表3都在DB2中 如下所述 DB1中的表1 customerId accountNumber DB2 中的表 2 customerId accountNumber id DB2 中的表 3 id 名称 国
  • 区分音乐文件中的乐器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定一个音乐文件 是否可以分离出正在演奏的每种乐器 IE 假设我有一些Song mp3 那首歌中有人声 吉他 贝斯和鼓 我想要 4 个
  • 确定 Javascript 对象是“复杂”对象还是只是一个字符串

    我希望能够传递字符串文字 this is a string 或 JavaScript 对象 one this two is three a four string 作为函数的参数 并根据它是字符串还是对象采取不同的操作 我如何确定哪个是真的
  • LINQ to SQL 使用不同的行对多个列进行分组

    我有以下表结构 我想选择不同的CustomerId and CustomerName TotalCost 这是表结构和列数据类型 LogId int CustomerId string CustomerName string Cost in
  • SVG 线端点独立动画

    我正在尝试对 SVG 线端点之一进行动画处理 使其沿着特定路径移动 而另一个端点保持静止 因此线会拉伸和收缩 同时保持笔直 到目前为止 我所实现的目标是使我的整条线沿着路径移动 并将端点之一绑定到它
  • Android 问答游戏 - 每个问题的倒计时器

    我使用此处的教程创建了一个适用于 Android 的测验应用程序 http automateddeveloper blogspot co uk 2011 06 getting started complete android app htm
  • 如何停止 html 属性中 onclick 事件的事件传播?

    我有一个带有 onclick 属性的 html 元素 我需要防止该事件冒泡 我尝试这样做 div 和这个 div 但两者都不起作用 我绝对需要在 html onclick 属性中执行此操作 因为此 div 是 Razor 部分视图的一部分
  • 如何在 Mac 10.7 上的 virtualenv 中安装 MatPlotLib

    这是我尝试做的 SAASSenv miki725mac SAASSenv miki725 python Python 2 7 2 v2 7 2 8527427914a2 Jun 11 2011 15 22 34 GCC 4 2 1 Appl
  • c 编程难题

    给定一个所有元素均为正数的数组 求子序列的最大和 约束条件是序列中的 2 个数字不应在数组中相邻 因此 3 2 7 10 应返回 13 3 和 10 之和 或 3 2 5 10 7 应返回 15 3 5 和 7 之和 我尝试使用所有可能允许
  • NPM 搜索:内存不足

    在 ubuntu 14 10 3 13 0 76 generic 120 Ubuntu SMP Mon Jan 18 15 59 10 UTC 2016 x86 64 x86 64 x86 64 GNU Linux 上 当我这样做时 sud
  • 实现 AsyncTask 的技巧

    大家好 我有一个应用程序 可以在位图上放置一个圆圈 并使用滑动条更改圆圈内像素的 RGB 值 我想使用 asynctask 来加速更改像素的过程 我不知道从哪里开始 我在活动文件底部注释掉了一些代码 因为这是我第一次尝试 谁能指出我如何实现
  • 使用 OpenCV 进行头部(和肩部)检测

    如果我问了一个太新手的问题 请提前道歉 我是 OpenCV 的初学者 我已经完成了一些教程 但我还没有很好地掌握它的概念 问题 如何使用 OpenCV 进行头部检测 不是面部检测 例如在公共汽车或房间内的照片中 注意 我不想做人脸检测 只需
  • 如何使用 firestore 的安全规则验证数组值?

    我有一个创建以下 JSON 结构的表单 reviewed false title Just a title user UYV9TRKXfNW1NeCyFyfjZfagJ8B items age 33 experience Newcomer
  • 在 Laravel Blade 中检索外部 api 的数据

    public function RetrieveStatus response Http get https exemple exemple com fr api
  • 在这种情况下,一般异常处理不是那么糟糕吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在下面的代码中 我尝试发送一组通知 我想知道通知是否已成功发送 稍后将其放入数据库中 这样就不再发送它 我抓到了是不是很糟糕Exception这
  • Django - 检查用户是否对每个网址进行了身份验证

    在我的 html 上 我可以使用以下语法检查用户是否已登录 if user is authenticated div div else p Please Log in p endif 但是 如果我想检查我正在渲染的每个 html 文件的用户
  • “调用/应用”和“绑定”之间有什么区别[重复]

    这个问题在这里已经有答案了 var obj x 81 getX function console log this x var getX obj getX bind obj use obj as this getX 81 var getX