https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/call
Function 实例的 call() 方法会以给定的 this 值和逐个提供的参数调用该函数。
语法形式:
call(thisArg)
call(thisArg, arg1)
call(thisArg, arg1, arg2)
call(thisArg, arg1, arg2, /* …, */ argN)
thisArg:在调用 func 时要使用的 this 值。
arg1,arg2,…argN:函数的参数。
返回:使用指定的 this 值和参数调用函数后的结果。
示例:使用 call() 调用函数并指定 this 值
function description() {
console.log('name = ' + this.name)
}
const obj1 = {
name: 'tom'
}
const obj2 = {
name: 'steven'
}
// 打印出tom
description.call(obj1)
// 打印出steven
description.call(obj2)
输出:
示例:
function description(age) {
console.log('name = ' + this.name + ' and age = ' + age)
}
const obj1 = {
name: 'tom'
}
description.call(obj1, 20)
输出:
示例:如果省略第一个 thisArg 参数,则默认为 undefined,在严格模式下,this 的值不会被替换,因此它保持为 undefined。
globalThis.name = 'tom'
function description() {
console.log(this)
console.log('name = ' + this.name)
}
// 抛出TypeError
description.call()
输出: