面试题记录1

面试题1:

function f(s){      
    console.log(this.a,s);  //因为是apply,则为obj.f调用函数,那么this指的是obj,  则输出a为2;s接收的是arguments里面的参数3,则s为3;
    return this.a + s;    
}
var obj = {
    a:2
}
var f2 = function(){   //无形参接收   arguments:['0':3]
    //return f.call(obj,...arguments);   //call作用也是使对象调用函数,但是传过去的是整个arguments,不是单单的数字3,所以用扩展符(相当于数组展开)
return f.apply(obj,arguments); //两个return效果一样,apply作用就是使obj对象调用函数 }
var b = f2(3); //因为函数f2()没有形参接收,所以3存放到arguments中 console.log(b); //5

面试题2:

猜你喜欢

转载自www.cnblogs.com/cccaroline/p/13387090.html