关于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]}

你可能感兴趣的:(关于js 中 this关键字的小结)