美文网首页
this指向

this指向

作者: 路灯下de男孩 | 来源:发表于2019-07-01 16:27 被阅读0次

    this指向的7个规则,腾讯课堂考拉老师哪里学到的,收益颇深;

    规则:
    1.函数直接用 圆括号() 运行,上下文是window对象;

    fn(); // 此时this指向的是window;
    

    2.对象打点调用函数,上下文是这个对象;

    obj.fn();  // 此时this指向的是obj;
    

    3.数组(类数组对象)中枚举出函数,上下文是这个数组(类数组对象);

    // arr[index](); // 这时候this指向的是arr;
    function fun1(fn){
        arguments[0](3,4); // arguments[] = fun2 运行时fun2的this指向arguments;
    }
    function fun2(){
        alert(this.length); // 这时候这个this指向的是fun1 的arguments
    }
    fun1(fun2,4,5,6,7); // 5
    

    4.定时器调用函数,上下文是window
    5.被当做事件处理函数时,上下文是触发事件的DOM元素

    dom.onclick = function(){
        alert(this.innerHTML)  // 此时this指向的是dom
    }
    

    6.用new调用函数,上下文是函数内创建的空白对象;
    用new调用函数会经过4步;
    ①创建一个空对象(这一步很隐秘,看不到)
    ②将this绑定到这个秘密创建的空对象中
    ③执行语句
    ④返回对象

    7.用apply、call、bind执行上下文;

    fn.apply(obj,[a,b,c,d]);
    
    fn.call(obj,a,b,c,d);
    
    fn.bind(obj);
    

    相关文章

      网友评论

          本文标题:this指向

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