【问题标题】:What to use - Passing context or call/apply?使用什么 - 传递上下文或调用/应用?
【发布时间】:2017-04-08 07:40:36
【问题描述】:

在 javascript 中,如果我必须在不同的上下文中调用函数,那么调用该函数的首选方法是什么。为什么?

1) 将this 作为参数传递,如下所示:

callthisfunction(arg1, arg2, this);
function callthisfunction(arg1, arg2, context) {}

2) 使用如下所示的调用/应用:

callthisfunction.call(this, arg1, arg2);

【问题讨论】:

  • 取决于函数的实现,如果你在函数中使用this上下文,那么使用Function#call,如果你使用参数名则使用它作为参数...跨度>
  • 你的函数会是partially applied吗?

标签: javascript this call apply executioncontext


【解决方案1】:

这取决于函数的工作方式。如果您通过this 引用上下文,我更喜欢call
你可以使用context,如果你想使用当前和传递的范围。

您也许还应该看看这个article。它更详细地描述了call。也申请将来可能对您有用。

编辑:也看看这个answer and the provided example

【讨论】:

  • 你可以提出重复的标志
  • @Mahi — 什么鬼?
  • “和传递的范围” - this 与范围无关。
  • @nnnnnn 即使是一个参数,当它从另一个函数作为作用域传递时,它仍然是一个作用域。在任何情况下,它都是作为参数传递的对象。仅从有条理的角度来看,它仍然是一个范围。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-10
  • 2012-09-30
  • 2022-01-02
  • 2021-02-17
  • 1970-01-01
  • 2022-10-12
相关资源
最近更新 更多