javascript前端开发:阿里巴巴超难面试题让你理解call的用法
关于javascript中的call方法,网上总很难找到全面而通俗的解释,就我个人的理解来说,call有两个作用: 1、继承 2、修改函数运行时的this指针。 下面这段代码来自阿里的前端面试题库 function fn(a,b){ console.log(this); console.log(a); console.log(a+b); } fn.call(1); fn.call.call(fn); fn.call.call.call(fn,1,2); fn.call.call.call.call(fn,1,2,3); 答案: fn.call(1); // 1,undefined,NaN fn.call.call(fn); // fn,undefined,NaN fn.call.call.call(fn,1,2); // 1,2,NaN fn.call.call.call.call(fn,1,2,3); // 1,2,5 题解: fn.call(1);call的第一个参数改变call前面函数里的关键字this所以输出1;后面没有参数所以a,b为undefined,相加结果为NaN; f...