📜  JavaScript | Reflect.get() 方法

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

JavaScript | Reflect.get() 方法

JavaScript 中的Reflect.get()方法用于允许用户以函数的形式从对象中获取属性。此方法始终返回属性的值。
句法:

Reflect.get(target, propertyKey, receiver) 

参数:此方法接受三个参数,如上所述,如下所述:

  • target:该参数用于获取属性,为目标对象。
  • propertyKey:此参数用于获取键的名称。
  • receiver:它是一个可选参数,如果遇到 getter,它是为调用 object 提供的 this 的值。

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

javascript
const object = {
  val1: 1,
  val2: 2
};
console.log(Reflect.get(object, 'val1'));
 
const abc = {val:21}; 
console.log( Reflect.get ( abc, "val" ) === 21 ); 
console.log( Reflect.get ( abc, "x" ) === undefined );  
console.log( Reflect.get ( abc, "y" ) === 21 ); 
 
const array1 = ['geeks1', 'geeks2', 'geeks3', 'geeks4'];
console.log(Reflect.get(array1, 3));


javascript
let abc = {val: 1};
 
let obj1 = new Proxy(abc, {
  get(t, k, r) {
    return k + 'for'+ k
  }
})
console.log (Reflect.get(obj1, 'geeks'));
 
const valx = {prop:21}; 
const valy = Object.create (valx); 
console.log ( 
    Reflect.get ( valy, "prop" ) === 12 
);
console.log ( 
    Reflect.get ( valy, "prop" ) === 21 
);


输出:

1
true
true
false
"geeks4"

示例 2:

javascript

let abc = {val: 1};
 
let obj1 = new Proxy(abc, {
  get(t, k, r) {
    return k + 'for'+ k
  }
})
console.log (Reflect.get(obj1, 'geeks'));
 
const valx = {prop:21}; 
const valy = Object.create (valx); 
console.log ( 
    Reflect.get ( valy, "prop" ) === 12 
);
console.log ( 
    Reflect.get ( valy, "prop" ) === 21 
);

输出:

"geeksforgeeks"
false
true

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

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