zoukankan      html  css  js  c++  java
  • this指向详解

    this

    this 指向并不是在函数定义的时候确定的,而是在调用的时候确定的。换句话说,函数的调用方式(直接调用、方法调用、new调用、bind、call、apply、箭头函数)决定了 this 指向。


     直接调用

    函数内部的 this 指向全局对象,在浏览器中全局对象是 window,在 NodeJs 中全局对象是 global。直接调用并不是指在全局作用域下进行调用,在任何作用域下,直接通过 函数名(...) 来对函数进行调用的方式,都称为直接调用。

    方法调用

    函数中的 this 指向调用该方法的对象。通过对象来调用其方法函数,它是 对象.方法函数(...) 这样的调用形式。

    new调用

    在 es5 中,用 new 调用一个构造函数,会创建一个新对象,而其中的 this 就指向这个新对象

    箭头函数

    箭头函数没有自己的 this 绑定,箭头函数中使用的 this,其实是直接包含它的那个函数或函数表达式中的 this


     Ps:非函数被调用时(这里分别打印40和10)

    当obj在全局声明时,无论obj.c在什么地方调用,这里的this都指向全局对象,而当obj在函数环境中声明时,这个this指向undefined,在非严格模式下,会自动转向全局对象。

  • 相关阅读:
    Task async await
    信号量
    操作符?? 与 ?.
    Expression表单式树
    delegate Func Action Expression
    常用技术
    一次移动记账 App 的设计探索
    网站渗透测试教程--渗透测试基本程序
    【】网站渗透测试教程--了解渗透测试
    15 位健在的牛叉程序员,你知道哪几位?
  • 原文地址:https://www.cnblogs.com/dreamsqin/p/10881501.html
Copyright © 2011-2022 走看看