handler.isExtensible()Object.isExtensible()に対するトラップです。

構文

var p = new Proxy(target, {
  isExtensible: function(target) {
  }
});

引数

次の引数はisExtensible メソッドに渡されます。thisはハンドラにバインドされます。

target
ターゲットオブジェクトです。

戻り値

isExtensible メソッドは真偽値を返さなければなりません。

説明

handler.isExtensible() メソッドは Object.isExtensible() に対するトラップです。

インターセプト

このトラップは下記の操作をインターセプトできます。

不変条件

次の不変条件に違反している場合、プロキシは TypeError をスローします。

  • Object.isExtensible(proxy) は Object.isExtensible(target) と同じ値を返さなければなりません。

次のコードではObject.isExtensible()をトラップします。

var p = new Proxy({}, {
  isExtensible: function(target) {
    console.log('called');
    return true;
  }
});

console.log(Object.isExtensible(p)); // "called"
                                     // true

次のコードでは不変条件に違反します。

var p = new Proxy({}, {
  isExtensible: function(target) {
    return false;
  }
});

Object.isExtensible(p); // TypeError is thrown

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
[[IsExtensible]] の定義
標準 初期定義
ECMAScript Latest Draft (ECMA-262)
[[IsExtensible]] の定義
ドラフト  

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応 ? ?31 なし ? ?
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 ? ? ?31 ? ? ?

関連情報

ドキュメントのタグと貢献者

このページの貢献者: segayuu, SphinxKnight, shide55
最終更新者: segayuu,