前端DAY3---call() apply() bind()的区别

call() 和 apply() 是立即调用函数并改变 this 指向,而 bind() 是创建一个新的函数,其中 this 指向被永久绑定。

三者都是可以改变this的指向

call()和apply()传递的参数的形式不同,

call是直接传递参数过去,

apply是以数组的形式来传递参数的。

bind会返回创建一个新的函数,称为绑定函数,该函数中this的指向为bind()中的第一个参数

  1. call(): 这个方法允许你调用一个函数,同时指定函数体内 this 的值,以及传入一个参数列表。
function greet(name) {
  console.log(`Hello, ${name}! I am ${this.name}.`);
}

const person = { name: 'Alice' };
greet.call(person, 'Bob');
// 输出: Hello, Bob! I am Alice.
  1. apply(): 与 call() 类似,不同之处在于它接受的参数是以数组的形式传入。
function greet(name, age) {
  console.log(`Hello, ${name}! I am ${this.name} and I am ${age} years old.`);
}

const person = { name: 'Alice' };
greet.apply(person, ['Bob', 30]);
// 输出: Hello, Bob! I am Alice and I am 30 years old.
  1. bind(): 这个方法会创建一个新的函数,称为绑定函数,这个函数的 this 值会被永久绑定到传入 bind() 方法的值。
function greet(name) {
  console.log(`Hello, ${name}! I am ${this.name}.`);
}

const person = { name: 'Alice' };
const greetPerson = greet.bind(person);
greetPerson('Bob');
// 输出: Hello, Bob! I am Alice.

所以,call() 和 apply() 是立即调用函数并改变 this 指向,而 bind() 是创建一个新的函数,其中 this 指向被永久绑定。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
v-model是Vue.js框架中常用的指令之一,用于实现表单元素和数据的双向绑定。它是v-bind:value和v-on:input的语法糖,简化了双向绑定的操作。 v-model指令可以用于各种表单元素,例如input、select和textarea等。它通过将表单元素的值与Vue实例中的数据属性进行绑定,实现数据的双向同步。 在使用v-model指令时,需要将表单元素的值绑定到Vue实例中的一个数据属性上。当用户在表单元素中输入内容时,该数据属性的值会自动更新;反之,当该数据属性的值发生变化时,表单元素的值也会相应地更新。 例如,下面是一个使用v-model指令的示例: ```html <input type="text" v-model="message"> ``` 在上述示例中,`message`是Vue实例中的一个数据属性,它与输入框的值进行了双向绑定。当用户在输入框中输入内容时,`message`的值会自动更新;反之,当`message`的值发生变化时,输入框的值也会相应地更新。 v-bind指令用于将Vue实例中的数据绑定到HTML元素的属性上。它可以用于绑定各种属性,例如class、style和src等。通过v-bind指令,我们可以动态地将Vue实例中的数据应用到HTML元素上。 例如,下面是一个使用v-bind指令的示例: ```html <div v-bind:class="className"></div> ``` 在上述示例中,`className`是Vue实例中的一个数据属性,它与`div`元素的`class`属性进行了绑定。当`className`的值发生变化时,`div`元素的`class`属性也会相应地更新。 总结起来,v-model用于实现表单元素和数据的双向绑定,而v-bind用于将Vue实例中的数据绑定到HTML元素的属性上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值