美文网首页
JavaScript中this用法

JavaScript中this用法

作者: 何大必 | 来源:发表于2019-02-19 20:25 被阅读0次

this

this是 JavaScript 语言的一个关键字。

它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体内部使用

function foo() {
  console.log(this.a)
}

函数的不同使用场合,this有不同的值。总的来说,this就是函数运行时所在的环境对象。下面分四种情况,详细讨论this的用法

以下代码公用函数fun

情况一:纯粹的函数调用

此种情况下,函数被全局调用,this代表全局对象window。

function foo() {
  console.log(this.a)
}
var a = 1
foo();//1

情况二:作为对象方法的调用

这种情况,谁调用了函数,谁就是 this。

const obj = {
  a: 2,
  foo: foo
}
obj.foo();//2

情况三 作为构造函数调用

对于 new 的方式来说,this 被永远绑定在了 c 上面,不会被任何方式改变 this。

const c = new foo();//输出 undefined

情况四 apply 调用

apply()是函数的一个方法,作用是改变函数的调用对象。它的第一个参数就表示改变后的调用这个函数的对象。因此,这时this指的就是这第一个参数。

foo.apply(obj);//2

情况五 箭头函数中的this

箭头函数其实是没有 this 的,箭头函数中的 this 只取决包裹箭头函数的第一个普通函数的 this。

function a() {
  return () => {
    return () => {
      console.log(this)
    }
  }
}
console.log(a()()()) ;//window

相关文章

  • JavaScript中this用法

    this this是 JavaScript 语言的一个关键字。 它是函数运行时,在函数体内部自动生成的一个对象,只...

  • JavaScript中forEach的用法相关

    JavaScript中forEach的用法相关 首先说下JavaScript的forEach的标准格式。为数组中的...

  • JavaScript学习(2)call&apply&am

    javascript学习(2)call&apply&bind&eval用法 在javascript中存在这样几种特...

  • JS中this的用法详解

    关键词:JavaScript this 前言 本文总结了几类JavaScript中,this的用法,同大家一起分...

  • JavaScript中的this用法

    this在全局中调用时指向的是全局对象。this在函数中调用时指向调用函数的对象,调用函数的在不同情况下有 thi...

  • Javascript中this的用法

    我们在写js时,特别是用到回调函数时,经常会发现this指代的对象总是可能脱离自己的思路而发生改变。面向对象语言的...

  • javascript中的this用法

    前言 this是Javascript语言的一个关键字。它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用...

  • JavaScript中this的用法

    今天去面试,再次被面试官要求解释一下this的用法。但是很遗憾,我对this的理解只局限与把它当成全局变量。因此,...

  • JavaScript中this的用法

    this是 JavaScript 语言的一个关键字。 它是函数运行时,在函数体内部自动生成的一个对象,只能在函数体...

  • 知识点小记

    1.javascript中onclick(this)用法简介 function test(obj){ alert...

网友评论

      本文标题:JavaScript中this用法

      本文链接:https://www.haomeiwen.com/subject/tuxqyqtx.html