问答题1096/1588改变this指向的方法有哪些?

难度:
2023-12-17 创建

参考答案:

有以下几种常用的方法可以改变this的指向:

  1. 使用bind()方法:bind()方法会创建一个新的函数,并将其内部的this绑定到指定的对象。例如:
1function sayHello() { 2 console.log("Hello, " + this.name); 3} 4 5const person = { name: "John" }; 6const boundFunction = sayHello.bind(person); 7boundFunction(); // 输出: Hello, John
  1. 使用箭头函数(Arrow Function):箭头函数没有自己的this,它会继承外部作用域的this。因此,在箭头函数中使用this时,它会指向定义时所在的上下文。例如:
1const obj = { 2 name: "Alice", 3 sayHello: function() { 4 setTimeout(() => { 5 console.log("Hello, " + this.name); 6 }, 1000); 7 } 8}; 9 10obj.sayHello(); // 输出: Hello, Alice
  1. 使用call()apply()方法:call()apply()方法可以立即调用函数,并显式指定函数内部的this值。它们之间的区别在于参数的传递方式。例如:
1function sayHello() { 2 console.log("Hello, " + this.name); 3} 4 5const person = { name: "John" }; 6sayHello.call(person); // 输出: Hello, John 7 8// 或者使用 apply() 9sayHello.apply(person); // 输出: Hello, John

最近更新时间:2024-07-19

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!