1
我正在使用lodash的_.mixin
或_.chain
链接我的自定义函数。该代码工作正常时,它是一类,如下之外:Lodash mixin不能在JavaScript中工作类
工作代码:
function start(data, param1, param2) {
_.mixin({
'someFunc': this.someFunc,
'anotherFunc': this.anotherFunc
})
// Chaining directly works
_.someFunc(data, param1)
.anotherFunc(param2)
// Using chain works
return _.chain(data)
.someFunc(param1)
.anotherFunc(param2)
}
function someFunc(data, param) {
return data;
}
function anotherFunc(data, param) {
return data + param;
}
我曾经在一个类中的代码的那一刻,它开始抛出一个TypeError: _.chain(...).someFunc is not a function
import * as _ from 'lodash';
class MyClass {
constructor() {
//.... code
}
start(data, param1, param2) {
// Does not work
_.mixin({
'someFunc': this.someFunc,
'anotherFunc': this.anotherFunc
})
// Does not work
_.someFunc(data, param1)
.anotherFunc(param2)
// Also does not work
return _.chain(data)
.someFunc(param1)
.anotherFunc(param2)
// Using them separately works:
let result = _.someFunc(param1);
let result2 = _.anotherFunc(param2);
}
someFunc(data, param) {
return data;
}
anotherFunc(data, param) {
return data + param;
}
}
如果任何人都可以了解为什么会发生这种情况,我会很感激。
怎么样'''return _.chain(data).someFunc(param1).anotherFunc(param2).value()'''链式方法是不是应该链接自定义函数?为什么这个课程在课外工作,但不在里面? – mjolnir
是的,链不链自定义功能。 'return ...'行适用于我,你能提供更多关于你的错误的信息吗?你正在运行什么版本的lodash? – EpicOrange
Lodash 4.17.2。我使用它与webpack /角。是的,在课堂之外,连锁方法对我很有用。当在课堂内部使用时,它会中断。 – mjolnir