call apply bind 修改this指向的区别

javascript 复制代码
  var obj1 = {
        name: 'zhang',
        getName() {
            console.log(this.name)
        }
    }
    var obj2 = {
        name: 'list',
        getName() {
            console.log(this.name)
        }
    }
    obj1.getName.call(obj2)  //list
    obj1.getName.apply(obj2)  //list
    obj1.getName.bind(obj2)  //  
    obj2.getName()           //list

call 改变this,自动执行函数,

apply 改变this,自动执行函数,第二个参数开始:将原函数的参数放在一个数组中

bind 改变this,手动加括号执行函数(),不会自动执行

相关推荐
梦想很大很大4 分钟前
使用 Go + Gin + Fx 构建工程化后端服务模板(gin-app 实践)
前端·后端·go
We་ct6 分钟前
LeetCode 56. 合并区间:区间重叠问题的核心解法与代码解析
前端·算法·leetcode·typescript
张3蜂13 分钟前
深入理解 Python 的 frozenset:为什么要有“不可变集合”?
前端·python·spring
无小道13 分钟前
Qt——事件简单介绍
开发语言·前端·qt
广州华水科技15 分钟前
GNSS与单北斗变形监测技术的应用现状分析与未来发展方向
前端
code_YuJun38 分钟前
corepack 作用
前端
千寻girling39 分钟前
Koa.js 教程 | 一份不可多得的 Node.js 的 Web 框架 Koa.js 教程
前端·后端·面试
全栈前端老曹40 分钟前
【MongoDB】Node.js 集成 —— Mongoose ORM、Schema 设计、Model 操作
前端·javascript·数据库·mongodb·node.js·nosql·全栈
code_YuJun41 分钟前
pnpm-workspace.yaml
前端
天才熊猫君44 分钟前
“破案”笔记:iframe动态加载内容后,打印功能为何失灵?
前端