js-this

作者: Jianshu9527 | 来源:发表于2018-07-04 22:56 被阅读16次

    一、this对象

    • this是JavaScript的一个关键字
    • 在函数运行的时候会自动创建一个this对象,并且this对象只能在函数内部使用
    • this是函数运行的环境对象
    • 函数作为普通的方法调用,this指向全局
    • 函数作为对象的方法调用,this指向当前对象

    二、this的值

    this在不同的函数中运行,其对应的值也不同
    

    1 普通的函数调用

    var name = 'window_this';//声明一个变量然后成为window的属性
    function getInfo(){
      console.log(this);//window对象
      console.log(this.name);//window_this
    }
    getInfo()//普通调用,相当于是window对象的一个方法,this就指向全局对象
    

    2 对象方法中调用

    //作为对象的方法调用时,this的值就是指向当前对象
    var name = 'window_this'
    var obj = {
        name:'obj_this',
        getInfo:function(){
            console.log(this.name);//obj_this
        }
    }
    obj.getInfo();
    

    3 call、apply调用

    //call 和apply是函数的一个方法
    //作用是改变函数体this对象的值,拓展函数运行的作用域
    //方法中第一个参数就是改变后调用这个函数的对象
    var name = 'window_this';
    function getInfo(){
        console.log(this.name); 
    }
    var obj = {};
    obj.name = 'obj_this';
    getInfo.call();//window_this,当第一个参数为空时,this默认指向全局对象
    getInfo.call(obj);//obj_this
    
    

    相关文章

      网友评论

          本文标题:js-this

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