2016-12-10 6 views
3

[OK]をみんなを設定することはできません...私は.htmファイルと.jsファイル内のコードのみにリンクされている.jsファイルを持っている行は次のようになります。キャッチされない例外TypeError:不変プロトタイプオブジェクト「#<Object>」彼らのプロトタイプが

Uncaught TypeError: Immutable prototype object '#<Object>' cannot have their prototype set 

私は前にこのエラーを見たことがないし、ここまたはオンラインそれのために何かを見つけることができません:「クロームコンソール」の.htmページをロードするには

Object.setPrototypeOf(Object.prototype,{x:616}); 
は、エラーが表示されます。

console.warn('sealed  ⇒',Object.isSealed(Object.prototype));  // false 
console.warn('frozen  ⇒',Object.isFrozen(Object.prototype));  // false 
console.warn('extensible ⇒',Object.isExtensible(Object.prototype)); // true 

しかし、これは問題では光を当てるないと私は困惑したままにしているよう:

は、私はそうテストを実行し、オブジェクトは/が凍結封印されていたと仮定しましたか? Object.prototypeのプロトタイプを設定したときにこれが起こったのはこれが初めてのことです。私のクロームブラウザが新しい機能や何かで自動更新されているのかどうか疑問に思っていますか?

答えて

4

これはES7(別名ES2016)の新機能です。組み込みプロトタイプオブジェクトObject.prototypeImmutable Prototype Exotic Objectsになり、[[prototype]]内部スロットがロックダウンされています。

prevent proxies from being inserted in the global lookup mechanismとされています。詳しくは、this commitを参照してください。それはrecently been implemented in V8です。

+0

拡張機能でこれを無効にできないのはなぜですか? – Pacerier

+0

@Pacerier「拡張機能」とはどういう意味ですか?ブラウザ拡張? – Bergi

関連する問題