Blobがコンストラクタに
ちょっと前にFirefoxがBlob constructorを実装した。
使えるのはFx14からかなあ。とりあえずNightlyではエラーを出さずにBlob
オブジェクトが返ってきた。
→Aurora (13)でも使えた!
あ、何かというと、new Blob(...)
ってやってBlob
オブジェクトを生成するもの。
これまでBlob
を作るのはBlobBuilder
だったけど、基本的に必要なくなる。
コンストラクタの引数は、データになるものを入れた配列と、あとオプションのディクショナリ。
配列はBlobBuilder.append()
に渡せるものと同じくArrayBuffer, DOMString, Blobであればよくて、あと数も何個でもよい。
ディクショナリはWebIDLに導入されたもので、Blob
ではtype
とendings
の指定に使われている。DOM4とかだとイベントに使われている。Pythonのと同じかなと思ったけど、WebIDLの仕様にはan associative array data type with a fixed, ordered set of key–value pairs
とある。ESだとオブジェクトってunorderedだよねえ。なんでだろう。
コンストラクタ化は昨年10月に「Blob
をコンストラクタにしたらBlobBuilder
要らなくねって話がでたんだけどどうよ?」みたいなスレッドがたって、そこで話されていたもの。確かにーと思ってたんだけど、1月にEDに追加されていたみたい。知らなかった。
ArunのメールによるとHarmonyのRest paramsを配列の代わりに使うことも考えられてるみたい。未来だなあ。
追記 (2012-03-20) MozBlobBuilderでwarningが出るように
早速こんな変更がmozilla-centralに。
コンストラクタができたからMozBlobBuilder
いらないだろう的なことで、Fx14からはwarningが出る。
しかし、MicrosoftもIE10でMSBlobBuilder
(あ、Ms
じゃなくてMS
なんだ)実装してるし、プラットフォームから消せるのかなあ。でもコンストラクタのほうが好きではある。