空的初始化javascript对象包含许多属性和函数
我用的是角度8。在一个组件中,我有这个函数空的初始化javascript对象包含许多属性和函数,javascript,angular,Javascript,Angular,我用的是角度8。在一个组件中,我有这个函数 private build(obj1: object, obj2: object) { const result: object = {}; console.log('begin result'); console.log(result); console.log('end result'); 在firebug中,我可以看到以下输出 正如您所看到的,在通常为空的对象中有属性和函数。为什么?我可以告诉你,这些属性
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,但我假设它正在保存对
结果
对象的引用,而不是为了记录而克隆它,因此在控制台.log
之后添加的所有属性在日志中展开时仍会显示出来。要检查,请尝试:
console.log('beginresult');
console.log(Object.keys(result));
console.log(“最终结果”);
这将及时向您显示该实例中附加到
result
的所有键。在3控制台.log
语句之后,您是否对result
执行其他操作?如果是这样的话,我们能看到代码吗?嗨,康纳斯范,我用相关信息更新了帖子