谈一谈js里面的this指向问题

     '前言 :

先来说一下this指向的问题 this指向在面试里面也会被经常的被问到 在开发里面也会遇到一些this指向的问题

经验有限 不足之处还望各位大佬指出来。

1 当我们在一个script的便签里面直接打印this的话。毫不疑问这个this会指向window ,就是当我们不对this进行任何操作或者绑定的话默认就是指向window

2 且看下面,我们来看一下,箭头函数里面的this指向问题

 const name='window';

      const obj={

          name:'我是对象的名字',

          showName(){//等同于 showName:function(){}

              console.log(this.name)//打印出 '我是对象的名字'

          },

        showNameTest:()=>{console.log(this.name)}//这里会打印window

      }

 obj.showName()//这里的this指向的就是obj这个对象  既普通函数会对this做一个绑定既谁调用他 this就指向谁

obj.showNameTest()//这里的this会指向window 因为这里使用了箭头函数 箭头函数不会绑定this 箭头函数里面的this只会和函数执行时所在的区域有关 

那如果我们想用showName这个函数来打印 window 此时我们就可以借用 call

apply  bind这三个函数来处理了 这三个函数是用来改变this指向的 

obj.showName.call(window)//这里把window这个对象传进去 使得函数内部的this指向window

那我们可不可以 showNameTest()让这个函数来打印obj的name呢 答案是不行的 通过这三个函数并没有办法改变箭头函数里面的this指向

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

推荐阅读更多精彩内容

  • js三座大山:原型和原型链 作用域和闭包 异步和单线程引用类型:对象 数组 函数 因为指针引用的是一个空间 所以叫...
    悠哈121阅读 613评论 0 11
  • 1.1 函数声明 //ES5 function getSum(){} function (){}//匿名函数 //...
    i_木木木木木阅读 273评论 0 0
  • 日期:2019 年 9 月 5 日 this 指向问题 介绍 this 指向问题一直是 js 中一个令人头疼的问题...
    五十岚色叶阅读 353评论 0 3
  • JS--this指向问题 1.function中的this在不同环境下的指向 事件调用环境:谁触发的事件,函数里面...
    不秃头的赖阅读 323评论 0 1
  • ECMAScript - 学习笔记 🎬 🧩nvm node.js 包管理工具 nvm github[https:/...
    Super三脚猫阅读 660评论 0 1