关于js 中 this关键字的小结

function函数调用中经常用到this ,

但是this具体是指的什么 ,它的作用范围还是不太清楚

今天在慕课听nodejs 课程的时候老师讲了一下 不同函数中this的所指

下面直接上代码

1.作为对象方法的调用

这时this就指这个上级对象。

 var pet = {

   words:'...',

   speak:function(){

      console.log(this.words)

       console.log(this ===pet)

     }

 }

 pet.speak();

node 在终端运行的时候打印出

//...

//true

说明此时的this 指的是调用的函数对象,该函数对象是speak函数所在的pet

2.this指向全局对象

这是函数的最通常用法,属于全局性调用,因此this就代表全局对象Global。

 function pet(words){

   this.words = words

   console.log(this.words)

    console.log(this===global)

 }

pet('...');

//...

//true

var x=1;

function text(){

     alert(this.x)

}

text();//1

.........................................

var  x=1;

function test(){

   this.x =0;

}

test();

alert(x);


3.作为构造函数调用

所谓构造函数,就是通过这个函数生成一个新对象(object)。这时,this就指这个新对象。

function Pet(words){

     this.words=words

     this.speak=function(){

          console.log(this.words)

          console.log(this)

     }

 }

var cat = new Pet('miao')

cat.speak();

//miao

// Pet{word:'miao',speak:[function]}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,842评论 2 17
  • 没搞错吧!js写了那么多年,this还是会搞错!没搞错,javascript就是回搞错! ………… 在写java的...
    zhoulujun阅读 1,460评论 0 11
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,109评论 1 10
  • 1. this之谜 在JavaScript中,this是当前执行函数的上下文。因为JavaScript有4种不同的...
    百里少龙阅读 1,023评论 0 3
  • 与其他语言相比,函数的this关键字在JavaScript中的表现略有不同,此外,在严格模式和非严格模式之间也会有...
    codingC阅读 587评论 0 0