面试真题

前端 · 中等 · 腾讯

JS 怎么改变函数作用域?

中等 前端 🎤 腾讯
参考答案
结论:JS改变函数作用域(即this绑定)可用call/apply/bind显式指定,或箭头函数继承词法作用域。方式:1) fn.call(obj, arg)和fn.apply(obj, [args])立即调用并绑定this为obj;2) fn.bind(obj)返回永久绑定this的新函数;3) 箭头函数无独立this,定义时捕获外层作用域链;4) with(obj){}临时将对象加入作用域链(严格模式禁用);5) new fn()将this指向新实例。原理:this由调用点决定,这些手段覆盖默认绑定规则。
题目整理自公开面经,答案由校招宝自研生成,仅供参考