📜  JavaScript | Reflect.ownKeys() 方法

📅  最后修改于: 2022-05-13 01:56:22.588000             🧑  作者: Mango

JavaScript | Reflect.ownKeys() 方法

Javascript 中的Reflect.ownKeys()方法用于返回目标对象自身属性键的数组,它忽略继承的属性。
句法:

Reflect.ownKeys( obj )

参数:此方法接受如上所述和如下所述的单个参数:

  • Obj:此参数保存目标对象,用于获取自己的密钥。

返回值:该方法总是返回目标对象自身属性键的数组。
异常:当目标不是对象时,TypeError 是作为结果给出的异常。
下面的示例说明了 JavaScript 中的Reflect.ownKeys() 方法
示例 1:

javascript
const object1 = {
  property1: 332,
  property2: 2
};
 
const array1 = [];
 
console.log(Reflect.ownKeys(object1));
 
console.log(Reflect.ownKeys(array1));
 
const obj = {ab: 5, bc: 5}; 
const obj1 = {ab: 5, bc: 5, ca:7}; 
   
console.log(Reflect.ownKeys(obj));   
console.log(Object.keys(obj1)); 
console.log(Reflect.ownKeys(obj1));


javascript
console.log(Reflect.ownKeys({z: 3, y: 2, x: 1}));
console.log(Reflect.ownKeys([]));                
  
let sym = Symbol.for('comet')
let sym2 = Symbol.for('meteor')
let obj = {[sym]: 0, 'val': 0, '45': 0, 'sdf': 0,
           [sym2]: 0, 'safss': 0, '34': 0, 'val2': 0}
console.log(Reflect.ownKeys(obj));
  
var obj1 = Object.create({}, { hoo:
    { value: function() { return this.hoo; } } }); 
console.log(Object.keys(obj1));  
console.log(Reflect.ownKeys(obj1));


输出:

[ 'property1', 'property2' ]
[ 'length' ]
[ 'ab', 'bc' ]
[ 'ab', 'bc', 'ca' ]
[ 'ab', 'bc', 'ca' ]

示例 2:

javascript

console.log(Reflect.ownKeys({z: 3, y: 2, x: 1}));
console.log(Reflect.ownKeys([]));                
  
let sym = Symbol.for('comet')
let sym2 = Symbol.for('meteor')
let obj = {[sym]: 0, 'val': 0, '45': 0, 'sdf': 0,
           [sym2]: 0, 'safss': 0, '34': 0, 'val2': 0}
console.log(Reflect.ownKeys(obj));
  
var obj1 = Object.create({}, { hoo:
    { value: function() { return this.hoo; } } }); 
console.log(Object.keys(obj1));  
console.log(Reflect.ownKeys(obj1));

输出:

[ 'z', 'y', 'x' ]
[ 'length' ]
[
  '34',
  '45',
  'val',
  'sdf',
  'safss',
  'val2',
  Symbol(comet),
  Symbol(meteor)
]
[]
[ 'hoo' ]

支持的浏览器: JavaScript Reflect.ownKeys() 方法支持的浏览器如下:

  • 谷歌浏览器 49 及更高版本
  • 边缘 12 及以上
  • 火狐 42 及以上
  • Opera 36 及以上
  • Safari 10 及更高版本