【发布时间】:2017-06-29 11:10:51
【问题描述】:
我正在使用 lodash 的 _.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: _.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;
}
}
如果有人能深入了解为什么会发生这种情况,我将不胜感激。
【问题讨论】:
标签: javascript ecmascript-6 lodash mixins