📜  JavaScript | Object.getOwnPropertyDescriptor() 方法

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

JavaScript | Object.getOwnPropertyDescriptor() 方法

JavaScript 中的Object.getOwnPropertyDescriptor() 方法是标准的内置对象,它返回给定对象自身属性的属性描述符。
句法:

Object.getOwnPropertyDescriptor( obj, prop )

参数:此方法接受上面提到的两个参数,如下所述:

  • obj:此参数保存要在其中查看属性的对象。
  • prop:此参数保存要检索其描述的属性的名称或符号。

返回值:此方法根据对象的存在返回给定属性或未定义的属性描述符。
下面的示例说明了 JavaScript 中的 Object.getOwnPropertyDescriptor() 方法:
示例 1:

javascript
const geeks1 = { 
  prop1: "GeeksforGeeks" 
} 
const geeks2 = { 
  prop2: "Best Platform" 
} 
const geeks3 = { 
  prop3: "And Computer science portal" 
}
const descriptor1 = Object.getOwnPropertyDescriptor(geeks1, 'prop1'); 
const descriptor2 = Object.getOwnPropertyDescriptor(geeks2, 'prop2'); 
const descriptor3 = Object.getOwnPropertyDescriptor(geeks3, 'prop3'); 
console.log(descriptor1.enumerable); 
console.log(descriptor2.enumerable); 
console.log(descriptor1.value); 
console.log(descriptor2.value); 
console.log(descriptor3.enumerable); 
console.log(descriptor3.value);


javascript
var geek, result;
geek = { get foo() { return 17; } };
d = Object.getOwnPropertyDescriptor(geek, 'foo');
console.log(d)
 
geek = { bar: 42 };
d = Object.getOwnPropertyDescriptor(geek, 'bar');
console.log(d)
 
geek = { [Symbol.for('baz')]: 73 }
d = Object.getOwnPropertyDescriptor(geek, Symbol.for('baz'));
console.log(d)
 
geek = {};
Object.defineProperty(geek, 'qux', {
  value: 8675309,
  writable: false,
  enumerable: false
});
d = Object.getOwnPropertyDescriptor(geek, 'qux');
console.log(d)


输出:

true
true
"GeeksforGeeks"
"Best Platform"
true
"And Computer science portal"

示例 2:

javascript

var geek, result;
geek = { get foo() { return 17; } };
d = Object.getOwnPropertyDescriptor(geek, 'foo');
console.log(d)
 
geek = { bar: 42 };
d = Object.getOwnPropertyDescriptor(geek, 'bar');
console.log(d)
 
geek = { [Symbol.for('baz')]: 73 }
d = Object.getOwnPropertyDescriptor(geek, Symbol.for('baz'));
console.log(d)
 
geek = {};
Object.defineProperty(geek, 'qux', {
  value: 8675309,
  writable: false,
  enumerable: false
});
d = Object.getOwnPropertyDescriptor(geek, 'qux');
console.log(d)

输出:

Object { get: get foo() { return 17; }, set: undefined, enumerable: true, configurable: true }
Object { value: 42, writable: true, enumerable: true, configurable: true }
Object { value: 73, writable: true, enumerable: true, configurable: true }
Object { value: 8675309, writable: false, enumerable: false, configurable: false }

支持的浏览器: Object.getOwnPropertyDescriptor() 方法支持的浏览器如下:

  • 谷歌浏览器 5.0 及以上
  • Internet Explorer 9.0 及更高版本
  • Mozilla 4.0 及更高版本
  • Opera 12 及以上
  • Safari 5.0 及以上