【发布时间】:2016-09-09 03:15:26
【问题描述】:
我正在使用 ES6 编写 mongoose 中间件:
userSchema.pre('save', (next) => {
// something...
next();
});
那没有用。调用了中间件,但“this”不是指正在保存的文档。然后我摆脱了 lambda 语法:
userSchema.pre('save', function(next) {
// something...
next();
});
它成功了!
我一直很高兴在 Node 中使用 lambdas,有人知道问题出在哪里吗? (我看到这里已经有一个关于这个问题的question,不过我希望得到一个基本的答案。
【问题讨论】:
-
一个 lambda 是一个匿名函数——一个没有名字的函数。你的两个例子都是 lambdas。但是是的,箭头函数有词法
this。
标签: javascript node.js mongoose ecmascript-6