👉 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.sayHello
function 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
✍️ 实现
📌 测试