SOURCE

/**
 * JS提供了一些函数方法给我们处理函数内部this的指向问题
 * 常用的有
 *  bind()
 *  call()
 *  apply()
 */

/**
 *  1.call方法
 *      call()方法调用一个对象,为调用函数的方式,可以改变函数的this指向
 *      fun.call(thisArg, arg1, arg2, ....)    
 *          thisArg: 改变this的指向
 *          arg1, arg2: 参数  
 */
    var obj = {
        name: 'kandy'
    }
    function fn(a,b) {
        this.age = 41;
        console.log(this.age)
    }
    // 改变fn的this的指向到obj对象
    // call 第一个可以调用函数,第二可以用来改变函数的this的指向
    fn.call(obj,1,2);

    // 利用 call() 来实现构造函数的继承
    function Father(name, age) {
        this.name = 'pp';
        this.age = 12;
    }
    function Son(name, age) {
        // 调用父构造函数的同时,把父构造函数的this指向子构造函数的this
        Father.call(this, name, age)
        console.log(this,'son')
    }
    var hh = new Son('哈哈哈',11); 
    console.log(hh) // Son {name: "pp", age: 12}


/**
 *      1.apply方法
 */
console 命令行工具 X clear

                    
>
console