0
点赞
收藏
分享

微信扫一扫

JavaScript中apply,call,bind解析

慕犹清 2022-01-28 阅读 50

直接贴代码,后解说,编程就是这样,先应用,后理解

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person1);  // 将返回 "Bill Gates"

要理解上面的3个概念首先要理解this关键字

this 是什么?

JavaScript this 关键词指的是它所属的对象。

它拥有不同的值,具体取决于它的使用位置:

  • 在方法中,this 指的是所有者对象。
  • 单独的情况下,this 指的是全局对象。
  • 在函数中,this 指的是全局对象。
  • 在函数中,严格模式下,this 是 undefined。
  • 在事件中,this 指的是接收事件的元素。

像 call() 和 apply() 这样的方法可以将 this 引用到任何对象。

方法         callapplybind
方法参数多个 单个数组多个
方法功能函数调用改变this指向函数调用改变this指向函数调用改变this指向
返回结果直接执行   直接执行返回待执行函数
低层实现通过eval通过eval间接调用apply
举报

相关推荐

0 条评论