首页 > 其他 > 详细

改变 this 指向的方法

时间:2020-08-10 10:46:43      阅读:76      评论:0      收藏:0      [点我收藏+]

call、apply、bind三者为改变this指向的方法。

共同点:第一个参数都为改变this的指针。若第一参数为null/undefined,this默认指向window

call(无数个参数)

  • 第一个参数:改变this指向
  • 第二个参数:实参
  • 使用之后会自动执行该函数
function fn(a, b, c) {
  console.log(this, a + b + c); // this指向window
}
fn();
fn.call(document, 1, 2, 3); //call改变之后this指向document
//输出 #document 6   1,2,3是实参 结果相加为6

apply(两个参数)

  • 第一个参数:改变this指向
  • 第二个参数:数组(里面为实参)
  • 使用时候会自动执行函数
function fn(a, b, c) {
  console.log(this, a + b + c);
}
fn();
fn.apply(document, [1, 2, 3]);

bind(无数个参数)

  • 第一个参数:改变this指向
  • 第二个参数之后:实参
  • 返回值为一个新的函数
  • 使用的时候需要手动调用下返回 的新函数(不会自动执行)
function fn(a, b, c) {
  console.log(this, a + b + c); //window
}
let ff = fn.bind("小明", 1, 2, 3); //手动调用一下

call、apply与bind区别:前两个可以自动执行,bind不会自动执行,需要手动调用

call、bind与apply区别:前两个都有无数个参数,apply只有两个参数,而且第二个参数为数组

改变 this 指向的方法

原文:https://www.cnblogs.com/crazycode2/p/13468127.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!