我有一个utils.js文件。其中包含许多功能,这些功能在我导出的文件末尾具有:
exports.findOtherOccurrenceInList = findOtherOccurrenceInList;
exports.cloneList = cloneList;
exports.isNullOrUndef = isNullOrUndef;
exports.isNullOrEmpty = isNullOrEmpty;
exports.cloneObject = cloneObject;
我的问题与“ cloneObject”功能有关。此功能的来源是:
function cloneObject(objToClone) {
if (typeof objToClone !== 'string') {
return objToClone;
}
if (isNullOrUndef(objToClone)) {
return objToClone;
}
let temp = objToClone.constructor();
for (let key in objToClone) {
temp[key] = cloneObject(objToClone[key]);
}
return temp;
}
然后我通过解构分配将utils.js包含在.vue文件中。这样可以正常工作。
但是,一旦我将函数的第一行更改为
if (typeof objToClone !== 'string') {
进入
if (typeof objToClone !== 'object') {
所有出口似乎都中断了,因为立即产生了许多警告:
warning in <some code>
"export 'cloneList' was not found in '@/utils/utils'
warning in <some code>
"export 'isNullOrEmpty' was not found in '@/utils/utils'
warning in <some code>
"export 'findOtherOccurrenceInList' was not found in '@/utils/utils'
等。
当我将第一行改回对'string'的检查后,所有内容再次起作用,并且警告消失。 (而且我尝试用module.exports导出函数,但这没有任何区别...)
什么可能导致这种奇怪的行为?