javascript - 是否有一个 Javascript 习惯用法,其中函数 `func` 被称为 `func.bind(this)`

标签 javascript scope this

我有这个函数func,它总是作为func.bind(this)调用。对于 func,隐式假设函数的 this 上下文始终是调用者的 this 上下文。这看起来有点重复,像这样调用 func 显然会导致误用,因为一些用户很容易忘记调用 func 而不将其绑定(bind)到 this 。我想知道是否有一种简洁的方法来始终使用其调用者的 this 上下文。

我正在考虑使用一种高阶方法来强制用户输入调用者的上下文。该方法如下所示:

function createFunc(context) {
    return function func() {
    // rather than call `this`, you use the input parameter, `context`.
    }
}

最佳答案

I was wondering if there is a concise way to always use the this context of its caller.

您基本上似乎在要求动态范围。 this 获取其值的方式是动态的,但大多数情况下都是显式的。您似乎想要一个隐式获取其调用范围的 this 值的函数。

这在 JavaScript 中是不可能的。调用者必须通过 f.call(this)f.apply(this) 显式设置 this 值。

关于javascript - 是否有一个 Javascript 习惯用法,其中函数 `func` 被称为 `func.bind(this)`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46840199/

相关文章:

JavaScript 匹配任何字母字符

javascript - 为什么 Github Pages 不允许我的有效 HTML?

javascript - 动态内容均匀分布在 2 列之间

Javascript - 清除间隔和 setinterval 范围

java - 为什么请求范围的 bean 不是从表单值创建的?

javascript readAsArrayBuffer 返回空数组缓冲区

c - 使用指针引用时的 block 级变量范围和生命线

javascript - 通过变量值调用函数并保持此指针的作用域

C# 如何将 'this' 关键字破解/修复到结构中?

javascript - 如何使用调用函数的元素的 "this"引用?