zoukankan      html  css  js  c++  java
  • ES6箭头函数this指向

    普通函数中的this:

    1. this总是代表它的直接调用者(js的this是执行上下文), 例如 obj.func ,那么func中的this就是obj

    2.在默认情况(非严格模式下,未使用 'use strict'),没找到直接调用者,则this指的是 window (约定俗成)

    3.在严格模式下,没有直接调用者的函数中的this是 undefined

    4.使用call,apply,bind(ES5新增)绑定的,this指的是 绑定的对象

    箭头函数中的this

    箭头函数没有自己的this, 它的this是继承而来; 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象, 定义它的时候,可能环境是window; 箭头函数可以方便地让我们在 setTimeout ,setInterval中方便的使用this

    <script>
     var obj = {
       say: function () {
         setTimeout(() => {
           console.log(this)
         });
       }
     }
     obj.say(); // obj
    </script>

    此时的 this继承自obj, 指的是定义它的对象obj,(它所处的宿主对象obj) 而不是 window!

    教程参考:https://blog.csdn.net/yangbingbinga/article/details/61424363

  • 相关阅读:
    Evensgn 的债务
    Passward
    拯救莫莉斯
    文艺平衡树
    Fliptile 翻格子游戏
    Making the Grade (bzoj1592)
    紧急疏散evacuate
    Password
    [NOIP2015]斗地主
    运输问题1
  • 原文地址:https://www.cnblogs.com/Mrrabbit/p/8664964.html
Copyright © 2011-2022 走看看