3

新しいオブジェクトを作成するときは、オブジェクト クラスの任意のメンバーを参照できます。例えば:

var obj = new Object();
obj["watch"];  //returns the watch() function of Object

obj["watch"] が代わりに未定義を返すように、このデフォルトの動作をオーバーライドする方法はありますか? この動作は Firefox でのみ見られることに注意してください

4

1 に答える 1

4

EcmaScript 5.1 以降、次の方法でプロトタイプなしで (およびなしでObject.protoype)オブジェクトを生成できます。

var empty = Object.create(null);
empty.watch; // undefined

ネイティブ関数が必要になります。使用する単純なポリフィルではnewこれを行うことができません。es5-shim のこのドキュメント セクションも参照してください。

この動作は Firefox でのみ見られることに注意してください

これwatchは、非標準の FF 拡張であるためです。ただし、他のブラウザーでも標準のプロパティを取得できるはずです。

于 2013-01-15T21:16:18.777 に答える