JavaScript中Object.keys、Object.getOwnPropertyNames区别

前端开发 作者: 2024-08-21 05:40:01
定义 Object.keys 定义:返回一个对象可枚举属性的字符串数组; Object.getOwnPropertyNames 定义:返回一个对象可枚举、不可枚举属性的名称; 属性的可枚举性、不可枚举

属性的可枚举性、不可枚举性

例子

var obj = { "prop1": "v1" };
Object.defineProperty(obj,"prop2",{ value: "v2",writable: false });
console.log(Object.keys(obj).length);           //output:1
console.log(Object.getOwnPropertyNames(obj).length);    :2

console.log(Object.keys(obj));           //output:Array[1] => [0: "prop1"]
console.log(Object.getOwnPropertyNames(obj));    :Array[2] => [0: "prop1",1: "prop2"]

 

内置的判断,访问和迭代方法

功能 可枚举 可枚举、不可枚举
判断
propertyIsEnumerable
 in/hasOwnProperty
访问  Object.keys  Object.getOwnPropertyNames
迭代  for..in..  Object.getOwnPropertyNames

实战

true });

console.log(obj.hasOwnProperty("prop1")); output: true
console.log(obj.hasOwnProperty("prop2")); output: true

console.log(obj.propertyIsEnumerable("prop1")); output: true
console.log(obj.propertyIsEnumerable("prop2")); output: false

console.log('prop1' in obj);    output: true
console.log('prop2' output: true

for (var item in obj) {
    console.log(item);
}
output:prop1

 Object.getOwnPropertyNames(obj)) {
    console.log(Object.getOwnPropertyNames(obj)[item]);
}
ouput:[prop1,prop2]

相关链接

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_65925.html