美文网首页
关于js 中 this关键字的小结

关于js 中 this关键字的小结

作者: 如果你还记得我是小双鱼 | 来源:发表于2017-05-09 16:20 被阅读0次

    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关键字的小结

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