call() , apply() ,bind()的用法

简介: call() , apply() ,bind()的用法

call() , apply() ,bind()的用法


- 作用:改变this指向,可以传递参数
- 语法:  A.call(B, 参数1, 参数2)
   A.apply(B, [ 参数1, 参数2])
   A.bind(B, 参数1, 参数2)()
var name = "小王", age = 17
    var obj = {
      name: '小张',
      age: this.age,
      myAge: function (fm, t) {
        // console.log(this)
        console.log(this.name + "年龄" + this.age, "来自" + fm + "去往" + t)
      }
    }
    const obj1 = { name: '小黄', age: 2 }
    // 参数1:this的指向
    // 参数2:传入的参数   call,bind传的是序列,apply传的是数组
  obj.myAge.call(obj1, "东土大唐", "西天")
    obj.myAge.apply(obj1, ["东土大唐", "西天"])
    obj.myAge.bind(obj1, "东土大唐", "西天")()
    // bind 返回的是一个函数,需要调用才可以执行
相关文章
|
2月前
|
JavaScript 前端开发 开发者
call、bind、apply区别
【10月更文挑战第26天】`call`、`bind` 和 `apply` 方法在改变函数 `this` 指向和参数传递方面各有特点,开发者可以根据具体的需求和使用场景选择合适的方法来实现更灵活和高效的JavaScript编程。
44 1
|
3月前
|
前端开发 JavaScript
比较一下apply/call/bind ?
本文首发于微信公众号“前端徐徐”,详细介绍了 JavaScript 中 `apply`、`call` 和 `bind` 方法的概念、使用场景及手动实现。主要内容包括: - **apply**:使用数组作为参数调用函数,并指定 `this`。 - **call**:直接传递参数调用函数,并指定 `this`。 - **bind**:返回一个绑定了 `this` 和部分参数的新函数。 文章还对比了这三个方法的区别,并提供了手动实现的代码示例。
28 2
|
5月前
|
JavaScript 前端开发 测试技术
手写call , apply , bind 方法的实现
本文通过实例讲解了JavaScript中`call`、`apply`及`bind`方法的用途与实现。以`call`为例,展示了如何改变函数内的`this`指向,并立即执行该函数。通过在`Function.prototype`上定义`myCall`,利用`Symbol`确保新增属性的唯一性,从而避免命名冲突。接着介绍了如何处理不定数量的参数传递,最终实现了自定义的`myCall`方法。随后简述了`apply`与`call`的区别,并展示了其实现方式,主要在于参数传递形式的不同。最后,通过`bind`方法创建了一个返回新函数的例子,该新函数具有固定的`this`上下文,同时支持分批参数传递。
41 2
手写call , apply , bind 方法的实现
|
8月前
call\apply\bind详解
call\apply\bind详解
41 0
bind、call、apply 区别
bind、call、apply 区别
85 0
call、apply、bind笔记
call、apply、bind笔记
68 0
apply、bind和call
apply、bind和call
99 0