javascript - 哪种方法更好 : function. apply(<this>, args) 或具有接受 <this> 作为参数的函数?

标签 javascript

假设我有一个这样定义的函数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/

相关文章:

javascript - 为什么渲染图像不起作用

javascript - 为什么我无法收到来自 javascript 的输入值

javascript - 如何使用 jQuery 获取除最后一个元素之外的所有元素

javascript - Body-parser 不适用于 typescript ,当我发送请求时,我在 request.body 中得到一个未定义的

javascript - 如何使 Electron 在所有其他 Windows 之上的窗口中作为 Skype 的指示器

javascript - 为什么重定向后页面跳转?

javascript 函数声明和作用域差异

javascript - 在 React 中强制重新加载 gif

javascript - 开 Jest - 将测试分开到另一个文件中

javascript - 如何从 Javascript 安全地调用 Google Cloud Run 服务?