今から反射使用するように自分自身を強制

staticメソッド

Reflect.apply(ターゲット、thisArg、引数)

等価に Function.prototype.apply.call(func, thisArg, args)

Reflect.construct(ターゲット、引数)

等価に new target(...args) new Student(name:'王五')

Reflect.get(ターゲット、名前、受信機)

var myObject = {
  foo: 1,
  bar: 2,
  get baz() {
    return this.foo + this.bar;
  },
};

var myReceiverObject = {
  foo: 4,
  bar: 4,
};

Reflect.get(myObject, 'baz', myReceiverObject) // 8

Reflect.set(ターゲット、名前、値、受信機)

var myObject = {
  foo: 4,
  set bar(value) {
    return this.foo = value;
  },
};

var myReceiverObject = {
  foo: 0,
};

Reflect.set(myObject, 'bar', 1, myReceiverObject);
myObject.foo // 4
myReceiverObject.foo // 1

Reflect.defineProperty(ターゲット、名前、DESC)

等価に Object.defineProperty

Reflect.deleteProperty(ターゲット、名前)

const myObj = { foo: 'bar' };

// 旧写法
delete myObj.foo;

// 新写法
Reflect.deleteProperty(myObj, 'foo');

Reflect.has(ターゲット、名前)

var myObject = {
  foo: 1,
};

// 旧写法
'foo' in myObject // true

// 新写法
Reflect.has(myObject, 'foo') // true

Reflect.ownKeys(ターゲット)

これは、と等価であるの合計Object.getOwnPropertyNamesObject.getOwnPropertySymbols

Reflect.isExtensible(ターゲット)

Reflect.isExtensible方法の対応するObject.isExtensible現在のオブジェクトスケーラビリティかどうかを示すブール値を返し、

Reflect.preventExtensions(ターゲット)

Reflect.preventExtensions対応するObject.preventExtensions方法は、加工対象物の拡張のために使用できなくなったこと。これは、操作が成功したかどうかを示すブール値を返します。

Reflect.getOwnPropertyDescriptor(ターゲット、名前)

Reflect.getOwnPropertyDescriptor実質的に同等のObject.getOwnPropertyDescriptor失われた未来を置き換えるれる、指定された特性を得るために、オブジェクトを記述するための、

var a={sb:1}

Reflect.getOwnPropertyDescriptor(a, 'sb');

//{configurable: true,enumerable: true,value: 1,writable: true}

Reflect.getPrototypeOf(ターゲット)

Reflect.getPrototypeOfオブジェクトの読み取り方法__proto__属性対応しますObject.getPrototypeOf(obj)

Reflect.setPrototypeOf(ターゲット、試作品)

Reflect.setPrototypeOfターゲットオブジェクトプロトタイプ設定するための方法prototype、対応するObject.setPrototypeOf(obj, newProto)方法。これは、設定が成功したかどうかを示すブール値を返します。

おすすめ

転載: www.cnblogs.com/smzd/p/11867317.html