1

状況は次のとおりです。次のような既存のクラスをチェックしています。

('Promise' in window) // true/false`

そして、強制的にfalseまたはtrueを返したいのですが、できますか? はい、別の方法で確認できます

window.Promise = undefined;
window.Promise === undefined;

またはこのようなものですが、どうにかしてこのオブジェクトを削除したり、「in」演算子で何かをシミュレートしたりできますか?

私は仕様とv8コードをチェックします.「HasProperty」演算子を呼び出すだけの「in」演算子があり、これはc ++で実現されています.toString / valueOfメソッドを偽造して「ハック」することを知っています:

obj = {
  toString: function(){ return 'myName'; }
},
obj2 = {};
obj2[obj] = 1; // Object {myName: 1}

何とか使えないかな。しかし、文字列「Promise」を送信すると、このように偽造することはできません..「HasProperty」を偽造する方法が存在する可能性がありますか?

4

0 に答える 0