关于this

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于this相关的知识,希望对你有一定的参考价值。

一:全局环境中的this指的是window对象

技术分享

二:作为对象的方法调用

  当函数作为对象的方法被调用时,this指向该对象

      例子:

技术分享

三:作为普通方法调用

  当函数不作为对象的属性被调用,而是作为普通函数函数被调用,this指向全局对象,也就是window

  例子1:

技术分享

  此时this是指向window对象。

 

技术分享

  如上图运行结果可以看出,在函数内部定义变量,未使用var 声明,则指向全局变量。可以对比结果

技术分享

  

  例子2:

技术分享

  如上图所示,作为普通函数调用时,this指向window 。作为对象属性调用时,this指向该对象。this是在对象内部函数定义的,但是调用的时候是作为普通函数调用,多以this依然指向window。

      this的指向,是根据调用时的环境,而非定义时的环境。

四:改变this指向,关于call()和apply();

  跟普通函数的调用相比,用call()或者apply()可以改变传入的this;

技术分享c

参考资料:《JavaScript设计模式与开发实践》 曾探

未完待续

 

以上是关于关于this的主要内容,如果未能解决你的问题,请参考以下文章

vue2.0 代码功能片段

关于 sublime snippet

在 webview_flutter 中启用捏合和缩放,在哪里添加代码片段 [this.webView.getSettings().setBuiltInZoomControls(true);]

ngx-translate实现国际化:this.translate.use()this.translate.get()this.translate.instant()onLangChange(代码片段

关于代码片段的时间复杂度

Discuz代码片段