apply方法用于调用函数并显式指定this值,参数以数组或类数组对象形式传入;语法为func.apply(thisArg, [argsArray]),适用于借用方法、动态传参及构造函数继承等场景。

apply 方法用于调用一个函数,并显式指定 this 值,同时将参数以**数组(或类数组对象)形式传入**。
基本语法和核心作用
它的签名是:func.apply(thisArg, [argsArray])。第一个参数决定函数内部 this 指向谁;第二个参数必须是数组或类数组(如 arguments、NodeList),元素会逐个作为参数传给函数。
常见使用场景
-
借用其他对象的方法:比如让数组方法处理类数组(如
arguments)Array.prototype.slice.call(arguments)等价于Array.prototype.slice.apply(null, arguments) -
动态传参:当你有一组参数存在数组里,又不想手动展开(尤其参数数量不确定时)
Math.max.apply(null, [1, 5, 3])返回5;ES6 中可用扩展运算符替代:Math.max(...[1, 5, 3]) -
继承或重用构造函数逻辑:子构造函数中调用父构造函数并传入所有参数
Parent.call(this, ...args)或Parent.apply(this, args)
注意事项
如果第二个参数不是数组或类数组,会抛出 TypeError。空数组 [] 表示不传任何参数;传 null 或 undefined 作为第一个参数,在非严格模式下 this 指向全局对象(如 window),严格模式下为 undefined。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
与 call 和 bind 的区别
call 接收的是**逗号分隔的参数列表**,apply 接收的是**单个数组参数**;bind 不立即执行,而是返回一个绑定好 this 和部分参数的新函数。
立即学习“Java免费学习笔记(深入)”;

















