首页 > 其他分享 >改变this指向

改变this指向

时间:2023-06-12 17:25:17浏览次数:31  
标签:obj2 指向 bind 改变 call apply fn

  • 三者都可以改变函数的this对象指向

  • 三者第一个参数都是this要指向的对象,如果如果没有这个参数或参数为undefinednull,则默认指向全局window

  • 三者都可以传参,但是apply是数组,而call是参数列表,且applycall是一次性传入参数,而bind可以分为多次传入

  • bind是返回绑定this之后的函数,applycall 则是立即执行

 (1)函数.call(对象, 实参, 实参...)

(2)函数.apply(对象, [实参, 实参, ...])

 (3)bind

 

// 三者都是用于改变this指向
var obj1 = {
a: 1
}
var obj2 = {
a: 2,
fn: function (c) {
console.log(this.a, c)
}
}
// obj2.fn(5)
// 通过call改变this指向,会触发该函数,把剩余参数直接往后放
obj2.fn.call(obj1, 5)
// 通过apply改变this指向,会出发该函数,把剩余参数放数组
obj2.fn.apply(obj1, [5])
// 通过bind改变this指向,不会触发该函数,返回的是一个新的函数,需要再去调用
obj2.fn.bind(obj1)(5)

 

标签:obj2,指向,bind,改变,call,apply,fn
From: https://www.cnblogs.com/le-fang/p/17475587.html

相关文章

  • 解析快捷方式指向的路径
    简介在做垃圾文件清理的时候,会涉及到快捷方式的解析,以确定其是否有效工作原理操作系统提供了解析快捷方式的API,其中新型的msi快捷方式,多见于Office的程序,其文件路径是类似msi:xxxx的ID信息,可以使用MsiGetShortcutTarget进行解析。普通的快捷方式,可以使用IShellLink来进......
  • 改变Datatable的某列数据类型
    //这里的dt是原datatable,dtNew是创建的datatableDataTabledtNew=dt.Clone();dtNew.Clear();//把到货状态这一列设置为string类型dtNew.Columns["到货状态"].DataType=System.Type.GetType("System.String");//按行导入值,把dt中的值导入到dtNew中for(inti=0;i<dt......
  • 众惠生活:共享经济背后的社会改变
    众惠生活,指的是让更多人分享优质生活资源,实现相互扶持,共同进步的理念。在这个物质丰富、科技发达的世界里,我们越来越注重生活质量,然而不同群体的生活质量却存在差异。众惠生活的出现,弥补了这一差距,让更多人受益。一方面,众惠生活通过资源共享,让人们以更低的成本获得高品质的生活服务......
  • Linux 4.10 将带来深远影响的三项小改变
    Linux的演进永不停歇。LinusTorvalds一直在努力工作,希望能够在新的内核版本当中(4.11)融入更多变化。不过在目前的Linux4.10中,我们同样发现了三组能够有效提升性能并实现多种前所未有功能集的变更。Linux的演进永不停歇。LinusTorvalds一直在努力工作,希望能够在新的内核......
  • 阿里云微服务引擎负责人李艳林:云原生网关当道,会带来哪些改变
    作者:褚杏娟前言:云几乎给每项基础设施都带来了冲击,网关也不例外。近期,云原生网关概念也越来越被大家热议。那么,究竟云原生网关需要具备哪些特点?主流网关产品如何适应云原生?网关标准统一是否必要?云原生网关未来如何发展?此前,Higress发起人、阿里云微服务引擎负责人李艳林(彦林)受邀......
  • 数字孪生与GIS结合,为智慧交通带来的改变
    在当代社会,交通问题已经成为城市发展中的一个重要挑战。交通拥堵、安全隐患、环境污染等问题给人们的出行带来了许多不便和困扰。然而,随着数字孪生技术与地理信息系统(GIS)的融合,我们迎来了智慧交通的新时代。数字孪生是一种将现实世界与数字模型相结合的技术,可以实时地模拟、监测......
  • 在excel中怎样控制一个单元格的内容随另一单元格变化而改变?
    http://zhidao.baidu.com/question/26715802/answer/3073469385跨表格的话:=VLOOKUP($C\(4,Sheet2!\)A:$B,2,0)$C$4是下拉菜单的位置AB是两个一一对应的列,比如:$C$4是下拉菜单的位置,公式写到要改变内容的单元格中。......
  • C++ 指向类的指针
    C++指向类的指针一个指向C++类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算符->,就像访问指向结构的指针一样。与所有的指针一样,您必须在使用指针之前,对指针进行初始化。下面的实例有助于更好地理解指向类的指针的概念:#include<iostream>usin......
  • 英雄之旅:为入迷而改变
      英雄之旅:我选择,我存在,我自由。寂静。不再像以前,能到生命力像水流一样在身上流动。不能再像以前那样入迷一件事情,心里想的都是Ta。我再次追溯Ta们的缘由,这次不再是【毫无头绪】,我发现了一些根本的【性质】了。正如苏格拉底所说:“不经过审视的人生,是不值得过的”。这是我寻找Ta......
  • 函数返回值与指向对象的指针和引用
    定义一个指向对象的指针或则引用不会调用构造函数和析构函数。首先,强调一点,和函数传参一样,函数返回时也会做一个拷贝。从某种角度上看,和传参一样,也分为三种:(1)返回值:返回任意类型的数据类型,会将返回数据做一个拷贝(副本)赋值给变量(return语句后边的变量会生成一个副本给一个临......