使用this.constructor调用javascript静态方法会产生TypeError。以下是代码,
parent.js,
module.exports = class parent {
persist(data) {
data = this.constructor._sanitizeData(data);
// remaining code using the sanitized data
}
static _sanitizeData(data) {
for (let prop in data) {
if (typeof data[prop] === 'object') {// dive deeper in
this.constructor._sanitizeData(data[prop]);
} else if(data[prop] === '') {
delete data[prop];
}
}
return data;
}
}
child.js,
const parent = require('parent');
module.exports = class child extends parent {
}
index.js,
const child = require('child');
let childObj = new child();
childObj.persist({a:1, b:2});
上面的代码给出了以下错误TypeError:this.constructor._sanitizeData不是函数
我在aws lambda中使用NodeJs 8.10。