js 中this 指向问题

1.首先普通函数里面谁调用 this便指向谁,call,apply,bind 可以改变this指向。

var a = 1;
var obj  =  {
    a: 2,
    b: function () {
        console.log(this.a); // 2
        function fun() { //this 指向window
          return this.a
        }
       console.log(fun());
    }
} 
obj.b();//1

2.箭头函数的this, 指向函数体外的this

var a = 1;
var obj = {
  a: 2
};
var fun = () => console.log(this.a);
fun();//1
fun.call(obj)//1
-------------------------------------------------------
var a = 1;
var obj = {
  a: 2
};
function fun() {
    var a = 3;
    let f = () => console.log(this.a);
      f();
};
fun();//1
fun.call(obj);//2

原文:https://juejin.cn/post/6844903488304971789

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、理解什么是this 1. this是使用call()方法调用函数传递的第一个参数,它可以在函数调用时修改。 2...
    没有鱼丸_b12f阅读 225评论 0 2
  • this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,一般情况下this的最终...
    布卡卡的晴空阅读 448评论 0 0
  • this最终指向的是调用它的那个对象 1、在普通函数里的this指向 例子1: 运行结果: 这里的this最终指向...
    洛禾sunshime阅读 305评论 0 0
  • 一.引言 首先我们需要知道:javascript中的this不是指定到一个固定的对象的,它会根据我们函数的调用方...
    IceyLai阅读 439评论 0 2
  • 在我感觉里,js 中this 的指向问题相比其他语言有点迷,所以就整理总结下~ 1.严格模式下,函数里的this ...
    搞君阅读 130评论 0 0