- 转换成字符串? 不严谨, 值为undefined的属性会丢失
var data = {a:undefined};
alert(JSON.stringify(data) === "{}");
- for… in ? 不严谨, 会拿到原型上的属性, 需要加上 hasOwnProperty 判断
- Object.keys() 拿到所有自身属性, 可枚举的
- Reflect.ownKeys() 拿到所有自身可枚举, 不可枚举, 和Symbol
博客主要探讨了JavaScript中获取对象属性的几种方法。指出将对象转换成字符串不严谨,值为undefined的属性会丢失;使用for…in也不严谨,需用hasOwnProperty判断;Object.keys()可获取自身可枚举属性,Reflect.ownKeys()能获取自身可枚举、不可枚举和Symbol属性。
var data = {a:undefined};
alert(JSON.stringify(data) === "{}");

被折叠的 条评论
为什么被折叠?