👉 call
call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数
💠 语法
function.call(thisArg, arg1, arg2, ...)
🟠 示例
function sayHello(message) {
console.log(message, this.name);
}
const obj = {
name: 'lencx'
};
sayHello.call(obj, 'welcome'); // welcome lencx
示例输出 welcome lencx,以上面例子分析一个调用函数的基本原理,我们就会注意到这些:
调用原型函数
call改变了this的指向。即调用函数变成了obj.sayHellofunction sayHello(message) { console.log(message, this.name); } const obj = { name: 'lencx', sayHello: function(message) { console.log(message, this.name); } }; obj.sayHello('welcome'); // welcome lencx传递给
sayHello.call的任意参数作为arg1, arg2, ...传递给原始sayHello不会对
obj和sayHello产生副作用。即调用call不会以任何方式修改原始obj或sayHello
🤔 思考
TODO
✍️ 实现
📌 测试