2011-08-11 7 views
3

あなたは多くの方法でJavaScriptでオブジェクトを作成することができますどのバージョンから、IEはObject.create(null)をサポートできますか?

// creates an object which makes the Object, prototype of data. 
var data1 = new Object(); 

// Object literal notation; Object still is the prototype of data2. 
var data2 = {}; 

// anotherObject is now the prototype of data3. 
var data3 = Object.create(anotherObject); 

/* data3 is an object which can be verified bye typeof operator, 
    however, it now has no prototype and you can 
    build everything from scratch. */ 
var data3 = Object.create(null); 

をしかし、私はIEのバージョンは最後の方法、すなわちObject.create(null)方法をサポートしているか分からないのですか?

+0

そして、何 –

+0

@Matias、プロトタイプを持たないオブジェクトを持っていたいと思いますが、 '{}'や 'new Object() 'でそれを実現することはできません。 ) '。 –

+0

このスクリプト言語のオブジェクトの原型は、因果的にプロポタイプ!:D JavaScriptはOOPではないため、プロトタイプ指向です。 –

答えて

5

ウィキペディアのJavaScript version historyを確認してください。あなたが1.8.5のバージョンを見つけたら - これはこのObjectファクトリメソッドが利用できる言語バージョンです - Internet Explorerの9番目のバージョンがそれをサポートしています。

ECMAScript 5 Compatibility Tableにもこの情報があります。

またIE、Multiple IEの非常に古いバージョンのMicrosoftのIEの仮想hereから入手できるマシン(または、のいずれかを使用してあなた自身のために試すことができます。インラインオブジェクト初期化子 `{}`またはObjectコンストラクタを使用して約

+0

リンクをありがとう。しかし、Objectファクトリメソッドについては言及していません。IE8でチェックしました。出来た。 'Object.create(null);'はIE8で動作します。 –

+0

更新を確認してください。 –

+1

私はあなたのIE8でうまくいかなかったのですが、それは私の中にはありません。そして私はMSDNでチェックしました。 "Object.create関数(JavaScript)は、Internet Explorer 8の標準モードとQuirksモードではサポートされていません。 – Andy

関連する問題