const err = new Error('invalid');
err.code = 200;
console.log(Object.keys(err));
=>
[ 'code' ]
为什么不是message
或stack
err
的密钥?
不是Error
ES6班级吗?
err.getAllProperties()
的实施方式是什么,以便它返回code
及其隐藏的' message
和stack
等属性?
答案 0 :(得分:2)
而不是:
Object.keys(err).forEach(function(key) {
var val = err[key];
console.log(val);
});
使用
Object.getOwnPropertyNames(err).forEach(function (key) {
var val = err[key];
console.log(val);
});
输出:
This is stack info
This is an error message
200
有关Object.getOwnPropertyNames的更多信息。