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,手动加括号执行函数(),不会自动执行

相关推荐
光影少年3 分钟前
AI前端开发需要会哪些及未来发展?
前端·人工智能·前端框架
Vincent_Vang14 分钟前
多态 、抽象类、抽象类和具体类的区别、抽象方法和具体方法的区别 以及 重载和重写的相同和不同之处
java·开发语言·前端·ide
菩提小狗16 分钟前
小迪安全_第4天:基础入门-30余种加密编码进制&Web&数据库&系统&代码&参数值|小迪安全笔记|网络安全|
前端·网络·数据库·笔记·安全·web安全
闲蛋小超人笑嘻嘻18 分钟前
非父子通信: provide和inject
前端·javascript·vue.js
周亚鑫18 分钟前
vue3 js代码混淆
开发语言·javascript·ecmascript
止观止33 分钟前
不止解构:深入掌握 ES6+ 对象与函数的高级语法糖
前端·javascript·es6
C_心欲无痕36 分钟前
react - useTransition标记低优先级更新
前端·react.js·前端框架
捻tua馔...39 分钟前
antd3的表单实现(HOC解决方案)
前端·javascript·react.js
支付宝体验科技41 分钟前
支付宝 KJS Compose 动态化方案与架构设计
前端·客户端
AllinLin1 小时前
JS中的call apply bind全面解析
前端·javascript·vue.js