假设我有一个这样定义的函数A:
functionA = function(myObject, someParams) {
myObject.save_some_data = someParams;
myObject.processed = true;
}
然后我可以调用它并传递一个对象作为 functionA(someObject, someParams)
进行处理。
不过,我可以用 apply()
转换这个例子:
functionA = function(someParams) {
this.save_some_data = someParams;
this.processed = true;
}
functionA.apply(someObject, [someParams]);
这两种方法似乎都实现了相同的目标,还是我遗漏了什么?
但由于 apply()
确实存在于 JavaScript 中,使用它而不是让我的函数接受 this
作为第一个参数有什么好处?
最佳答案
apply
将使用 someParams
作为参数数组; call
实际上会做同样的事情:
functionA.call(someObject, someParams);
除了样式之外没有任何好处。在大多数情况下,将 someObject
作为参数传递可能更有意义,但这实际上取决于您以及您最喜欢哪个。
关于javascript - 哪种方法更好 : function. apply(<this>, args) 或具有接受 <this> 作为参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391830/