Lodash mixin在JavaScript类中不起作用
我使用lodash的Lodash mixin在JavaScript类中不起作用,javascript,ecmascript-6,lodash,mixins,Javascript,Ecmascript 6,Lodash,Mixins,我使用lodash的.mixin或.chain链接我的自定义函数。代码在类之外时工作正常,如下所示: 工作代码: function start(data, param1, param2) { _.mixin({ 'someFunc': this.someFunc, 'anotherFunc': this.anotherFunc }) // Chaining directly works _.someFun
.mixin
或.chain
链接我的自定义函数。代码在类之外时工作正常,如下所示:
工作代码:
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:u.chain(…)。someFunc不是一个函数
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;
}
}
如果有人能解释为什么会发生这种情况,我会非常感激
_.someFunc(data, param1)
.anotherFunc(param2)
someFunc
不返回lodash包装器对象,因此不能对返回值调用另一个函数
someFunc
不返回lodash包装器对象,因此不能对返回值调用anotherFunc
。关于return.chain(data).someFunc(param1).anotherFunc(param2).value()的chain方法不应该链接自定义函数吗?为什么这会在类外工作而不是在类内工作?是的,chain做chain自定义函数。return…
行对我来说很好,您能提供有关错误的更多信息吗?您运行的是什么版本的lodash?lodash 4.17.2。我将它与webpack/angular一起使用。是的,链式教学法在课外对我很有效。在类内部使用时,它会中断。奇怪。除了这个答案中给出的内容外,你的两个例子对我来说都没有错误。可能是。链可能被覆盖了?..chain(data).value()
返回什么?非常奇怪。我不确定我错过了什么.chain(data).value()
返回未定义的
,但仅在类内部返回。那么返回
链方法不应该链接自定义函数吗?为什么这会在类外工作而不是在类内工作?是的,chain做chain自定义函数。return…
行对我来说很好,您能提供有关错误的更多信息吗?您运行的是什么版本的lodash?lodash 4.17.2。我将它与webpack/angular一起使用。是的,链式教学法在课外对我很有效。在类内部使用时,它会中断。奇怪。除了这个答案中给出的内容外,你的两个例子对我来说都没有错误。可能是。链可能被覆盖了?..chain(data).value()
返回什么?非常奇怪。我不确定我错过了什么..chain(data).value()
返回未定义的
,但仅在类内部返回。