JS中this的使用

作者: 熊妹妹 | 来源:发表于2016-12-24 00:17 被阅读14次

    this是JavaScript中的关键字,指向调用函数的对象。下面分几种场景分析。

    全局函数内

    function test(){
        alert(this);
      }
    

    this指向的是window对象,所以在这个方法内可以直接访问到所有的全局变量。

    js对象内

    var obj = {}; 
    obj.fun = function(){ 
            alert(this); 
        }; 
    

    this指向的是obj对象

    构造函数内

    function test(){
        alert(this);
      }
    var obj = new test();
    

    this指向obj对象

    apply,call,bind

    apply和call都是改变函数体内部this的指向。第一个参数都是this指向的对象,传空就是window对象,第二个开始参数只是格式不同。
    bind也可以改变函数体内this指针。调用bind方法会生成一个新的函数。
    当你希望改变上下文环境之后并非立即执行,而是回调执行的时候,使用 bind() 方法。而 apply/call 则会立即执行函数。

    其他方式

    前面提到用bind等方式修改函数体内的this指向,ES6的语法提供了两种方式可以达到同样的效果

    => 箭头函数
    箭头函数没有它们自己的 this,箭头函数中的 this 值始终来自闭包所在的作用域。

    :: 绑定操作符

    ::操作符会将左值和右值(一个函数)进行绑定,从而可以达到修改方法调用者同时也是this值的效果。

    相关文章

      网友评论

        本文标题:JS中this的使用

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