我使用的是 Angular 8。在组件中,我有这个函数
private build(obj1: object, obj2: object) {
const result: object = {};
console.log('begin result');
console.log(result);
console.log('end result');
在 firebug 中我可以看到以下输出
正如您所看到的,通常为空的对象中有属性和函数。为什么 ?我只能告诉您,这些属性是我在此组件中使用的 FormGroup 的属性
private build(obj1: object, obj2: object) {
const result: object = {};
console.log('begin result');
console.log(result);
console.log('end result');
for (const property in obj1) {
console.log('property in obj1');
console.log(property);
console.log(result);
result[property] = obj1[property];
console.log(result);
}
for (const property in obj2) {
console.log('property in obj2');
console.log(property);
if (!obj1.hasOwnProperty(property)) {
if (obj2.hasOwnProperty(property) && obj2[property]) {
result[property] = obj2[property];
} else {
result[property] = '';
}
console.log(result);
}
}
return result;
}
最佳答案
我从未使用过 Firebug,但我假设它保存对 result
对象的引用,而不是出于日志记录的目的克隆它,因此之后添加的所有属性当您在日志中展开 console.log
时,它仍然会显示。要检查,请尝试:
console.log('begin result');
console.log(Object.keys(result));
console.log('end result');
这将及时向您显示附加到结果
的所有键。
关于javascript - 空初始化的 javascript 对象包含大量属性和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60889703/