Avatar ·

JavaScript中call和apply的区别是什么?

大家好!我开始学习JavaScript,遇到了call和apply方法。我读了文档,但还是不太明白它们的区别。假设我有一个对象: ```javascript const user = { name: '伊万', greet: function(greeting, punctuation) { console.log(`${greeting}, ${this.name}${punctuation}`); } }; const admin = { name: '彼得' }; ``` 我想以admin对象的名义调用greet方法。据我理解,这两个方法都可以设置this。但当我尝试: ```javascript user.greet.call(admin, '你好', '!'); // 有效 user.greet.apply(admin, ['你好', '!']); // 也有效 ``` 区别只在于apply接受一个参数数组吗?还是还有其他细节?比如,这会影响性能吗?或者有没有某个方法更适合某些情况?希望能得到详细的解释和示例。 <<>>

主要区别:参数传递方式

你观察得很对。关键区别在于