call可显式指定函数执行时的this值并立即调用,语法为func.call(thisArg, arg1, arg2...),常用于借用方法、切换上下文和构造函数继承,且null/undefined在非严格模式下指向全局对象。

JavaScript 中用 call 可以显式指定函数执行时的 this 值,并立即调用该函数。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
call 的基本语法和作用
call 是函数对象上的方法,语法为:func.call(thisArg, arg1, arg2, ...)
第一个参数是函数内部 this 指向的对象;后续参数依次传入原函数。
常见使用场景
-
借用其他对象的方法:比如让数组方法处理类数组(如
arguments)Array.prototype.slice.call(arguments, 1)相当于把arguments当作数组切片。 -
临时切换 this 上下文:比如在回调中保持某个对象的上下文
button.addEventListener('click', function() { handleClick.call(myObj, event); }); -
构造函数继承:子构造函数中调用父构造函数初始化实例属性
function Child(name) { Parent.call(this, name); }
注意点
call 会立即执行函数,不返回新函数;如果第一个参数为 null 或 undefined,非严格模式下 this 指向全局对象(如 window),严格模式下为 null;传入原始值(如字符串、数字)会被自动包装成对应对象。

















