javascript之this指向(一)

图标

豆瓜

豆瓜网

豆瓜网专栏

首发
豆瓜 图标 2020-03-20 10:32:54

平时用this有些混乱,所以写个总结。

没有箭头函数之前,我们说this就是函数运行时所在的环境对象,但是在箭头函数中this就是定义时所在的对象,先说大家熟知的:函数运行时所在的环境对象。

1、作为函数调用,this指向全局对象

var q = 'window'var func = function {
    console.log(this.q)}func()   //window

2、作为对象的方法调用,该对象即为调用上下文,this指向该对象。

var q = 'window'var func = function() {
    console.log(this.q)}var obj = {
    q: 'obj',
    func: func,
    anotherObj: {
        q: 'anotherObj',
        func: func    }}obj.func()   //objobj.anotherObj.func() //anotherObj

3、作为构造函数调用,构造函数试图初始化这个新创建的对象,并将这个对象作为其调用上下文,this 指向这个新创建的对象。

var q = 'window'function Func() {
    this.q = 'Func'
    console.log(this.q)}var obj = new Func  //Funcconsole.log(this.q)  //window

4、通过函数的call/apply方法间接调用, call/apply方法的第一个参数是调用上下文,在函数体内,通过this获得对它的引用。

var q = 'window'function func() { console.log(this.q)}var obj = {
 q: 'obj'}func.apply()  //windowfunc.call() //windowfunc.apply(obj) //objfunc.call(obj) //obj


本文由豆瓜网专栏作家 豆瓜 投稿发布,并经过豆瓜网编辑审核。

转载此文章须经作者同意,并附上出处(豆瓜网)及本页链接。

若稿件文字、图片、视频等内容侵犯了您的权益,请联系本站进行 投诉处理

相关搜索

javascript
图标 图标

豆瓜

豆瓜网

豆瓜网专栏

全部评论

豆瓜

豆瓜网

豆瓜网专栏

  • 日本花王纸尿裤怎么样
  • volte是什么意思,手机怎么开启volte
  • 华为在英宣布两千万英镑投资计划,拥有7200...
  • 从空调能效标识区分空调耗电能量
  • 马云的hhb酒吧被网友调侃为还花呗
  • 我来说两句