美文网首页
this 的四种指向

this 的四种指向

作者: 雨泽丶 | 来源:发表于2019-04-24 21:41 被阅读0次
    1. 方法调用
    var age = 38;
    var obj = {
        age: 18,
        getAge: function() {
            console.log(this.age);
        }
    };
    obj.getAge(); //18
    --------------------------------------------------
    // 变式:
    var fn = obj.getAge;
    fn();   
    
    1. 函数调用,里面的this指向的是window
    var age = 38;
    var obj = {
        age: 18,
        getAge: function() {
            var fn = function() {
                console.log(this.age);
            };
            fn();
        }
    };
    obj.getAge();//38
    
    1. 构造函数调用:this指向调用它的对象
    var age = 38;
    var obj = {
        age: 18
    };
    
    var getAge = function() {
        console.log(this.age);
    };
    obj.get = getAge;
    obj.get(); //18
    
    1. call 和 apply 上下文调用模式,this指向谁?指向的是传入的对象
    var arr = [1, 3, 4, 6, 7, 555, 333, 13]
            var max = arr[0]
            for (let i = 0; i < arr.length; i++) {
                if (max < arr[i]) {
                    max = arr[i]
                }
            }
            console.log(max)        //555
            console.log(Math.max(1, 2, 3, 4, 5))//5
            //apply 输入的参数(arr指的是this  ,arr即输入格式必须为数组)
            console.log(Math.max.apply(arr, arr)) //=== Math.max(1,3,4,6,7,555,333,13)   //555
            //apply 输入的参数(arr指的是this  ,后面的即为格式数组的内容)
            console.log(Math.max.call(arr, 1, 3, 4, 6, 7, 555, 333, 13))  //555
    

    相关文章

      网友评论

          本文标题:this 的四种指向

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