给定一个对象 obj,其中定义方法 a,方法内部输出 this.name,且 obj 和全局作用域都定义了 name 属性。分别用 obj.a() 和 (obj.a)() 调用时,各自的输出是什么?请解释原因。
考察说明
考察 JS 中 this 绑定规则与括号表达式对 this 的影响
回答思路
- 明确 obj.a() 中 this 指向 obj,输出 obj.name
- 明确 (obj.a)() 中 this 指向全局对象,输出全局 name
- 解释括号不改变函数引用,this 绑定由调用方式决定
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。