javascript - 如何编写非箭头函数作为参数
问题描述
是的,我已经知道 9028924 人会在发布后 8 秒内将此标记为重复问题。相信我......我已经用谷歌搜索了近一个小时,否则我不会问。
methods: {
stylizeHeader: debounce(event => {
if (event.target.scrollTop <= 1 && !this.scrolled) {
this.scrolled = true;
console.log('true');
} else if (this.scrolled) {
this.scrolled = false;
console.log('false');
}
}, 20),
},
我正在使用 Vue,我想要做的就是访问this
debounce 函数中的属性,因为它与外部范围(一个 Vue 实现细节)有关。问题显然是箭头函数。
我找不到正确的语法。我已经尝试了我能想到的所有排列() { }
如果我使用function() { }
它可以正常工作,但 eslint 会抱怨(所以我想遵循最新的约定)。
我如何从字面上用 ES6 编写它,以便我可以访问this
.
解决方案
如果function() {}
有效,但 linter 抱怨该函数没有名称,那么只需给该函数一个名称
methods: {
stylizeHeader: debounce(function debouncedStylizeHeader(event) {
// ..... your code
}, 20),
},
命名此类函数的目的纯粹是出于调试目的 - 错误堆栈跟踪将包含该函数的名称,而不是anonymous function
(或类似的),如果您有一个大型代码库并且有很多人在使用它,这将很有用
也许您正在使用的 linter 规则是为这样的环境(即大型代码库)而设计的,并且该规则可以帮助调试错误
没有理由不这样做,这是一种很好的做法(在我看来)
推荐阅读
- python - 尊重 django 表的顺序
- azure-data-factory - 如何优化 Azure Data FactoryPipeline?
- javascript - 如何使用 React/Styled-components 继承样式
- r - 加权 cumsum 与另一列滚动
- c# - UseInMemoryDatabase ASP.NET Core 3.1 遇到问题
- mysql - 递归表上的 SQL 触发器
- ios - 每个元素值过滤数组的语法是什么?
- r - 用密码子对 DNA 序列进行分组
- algorithm - 相对于其他两个点的位置移动一个点的算法,
- python - 本地 python 包安装不再复制包?