JavaScript-面试-this与箭头函数
2026年10月16日·Admin·2 次浏览
面试题:this 指向?箭头函数为什么不能当构造函数?
this 绑定规则(优先级从高到低)
new调用:this指向新创建的对象。call/apply/bind:显式指定this(bind返回绑定后的函数)。- 对象方法调用:
obj.fn()里this一般为obj(注意赋值后裸调会丢)。 - 严格模式普通函数调用:
this为undefined;非严格为全局对象(浏览器里window)。
易错点
const fn = obj.method;
fn(); // 不是 obj 调用 → this 丢失
类的方法若作为回调传递,常需 bind 或箭头函数包装。
箭头函数
- 没有自己的
this,词法上继承外层作用域的this。 - 没有
prototype,不能new。 - 没有
arguments对象(可用剩余参数...args)。 - 不适合做原型方法若依赖「调用者」动态
this(如 DOM 监听里需要元素作this时要小心)。
口述模板
「this 看谁怎么调用;箭头函数绑词法 this,不能当构造器。」