状況は次のとおりです。次のような既存のクラスをチェックしています。
('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」を偽造する方法が存在する可能性がありますか?