ES 6常用単が無視されやすい方法

3021 ワード

1.has(1)hasメソッドは、HasProperty操作をブロックするために使用されます(HasOwnPropertyではないことに注意してください.つまり、hasメソッドは、1つのプロパティがオブジェクト自体のプロパティなのか、継承されたプロパティなのかを判断しません).すなわち,オブジェクトに属性があるか否かを判断すると,このメソッドが有効になる.典型的な操作はin演算子です.ターゲットオブジェクト、クエリーするプロパティ名の2つのパラメータを受け入れることができます.(2)特定の属性を非表示にする
//   _     
var handler = {
  has (target, key) {
    if (key[0] === '_') {
      return false;
    }
    return key in target;
  }
};
var target = { _prop: 'foo', prop: 'foo' };
var proxy = new Proxy(target, handler);
'_prop' in proxy // false


(3)hasブロックはfor...inサイクルに対して有効ではない.
2.construct()constructメソッドはnewコマンドをブロックするために使用され、以下はブロック対象の書き方である.ターゲットオブジェクト、コンストラクション関数のパラメータオブジェクト、インスタンスオブジェクトを作成するときにnewコマンドが作用するコンストラクション関数の3つのパラメータを受け入れることができます.constructメソッドはオブジェクトを返さなければなりません.そうしないと、エラーが発生します.
3.deleteProperty()deletePropertyメソッドはdelete操作をブロックするために使用されます.このメソッドがエラーを投げ出したりfalseを返したりすると、現在のプロパティはdeleteコマンドで削除できません.ターゲットオブジェクト自体の構成不可能な属性はdeletePropertyメソッドで削除できません.そうしないと、エラーが発生します.
4.defineProperty()defineProperty()メソッドはObjectをブロックした.defineProperty()操作.ターゲットオブジェクトが拡張できない場合は、defineProperty()はターゲットオブジェクトに存在しないプロパティを追加できません.そうしないと、エラーが発生します.また、ターゲットオブジェクトのプロパティが書き込み不可(writable)または構成不可(configurable)の場合、defineProperty()メソッドはこの2つの設定を変更できません.
5.getPrototypeOf() (1).メソッドは主にオブジェクトプロトタイプの取得をブロックするために使用され、戻り値はオブジェクトまたはnullでなければなりません.そうしないと、エラーが発生します.(2).ターゲットオブジェクトが拡張できない場合、getPrototypeOf()メソッドはターゲットオブジェクトのプロトタイプオブジェクト(3)を返さなければならない.次の操作をブロックします:Object.prototype.proto Object.prototype.isPrototypeOf() Object.getPrototypeOf() Reflect.getPrototypeOf() instanceof
6.vue 3 definePropertyをProxyで置き換える