Firefox 1.5 の JavaScript の主な変更点 ― 2005年09月04日 15時52分
えむもじらにて Firefox 1.5 の主な変更点が取り上げられているが、JavaScript 関係の話題がないようなので補足しておく。その後 JavaScript に関する話題も追加された。
E4X
E4X (ECMAScript for XML) がサポートされた (Bug 246441) 。これにより JavaScript のデータ型として XML を扱うことができるようになる。サンプルは ECMAScript for XML - d.y.d.などを参照。
Array extras
Array オブジェクトのインスタンスメソッドに indexOf 、lastIndexOf 、forEach 、map 、filter 、some 、every が追加された (Bug 290592) 。詳細については Core JavaScript 1.5 Reference の Array の項を参照 (ひょっとすると 1.5 Reference からは解説が外されるかもしれない) 。
なお、これらに関して関数をマッピングするのだから Array オブジェクトではなく Function オブジェクトのインスタンスメソッドであるべきだという意見が出たが、結局変更はされず代わりに Array/String generics がサポートされた (Bug 304828) 。
Array/String generics
Array オブジェクト、String オブジェクトのインスタンスメソッドが、クラスメソッドとしても利用できるようになった (Bug 304828) 。具体的には someArray.join(", ")
というのが Array.join(someArray, ", ")
とも書けるようになった。
これにより配列のようで配列でないオブジェクト (length 、0 ~ n プロパティを持つオブジェクト、arguments とか DOMNodeList とか) の扱いが楽になる (これまでは Array.prototype.join.apply(arguments)
とかしなければいけなかったのが Array.join(arguments)
とできるようになる) 。例えばよくありそうな getElementsByClassName はこうかける。
function getElementsByClassName(name)
{
return Array.filter(document.getElementsByTagName("*"), function (element) {
return element.className.split(/\s+/).indexOf(name) != -1;
});
}
JavaScript 1.6?
これはまだよくわからないのだが、Firefox 1.5 では以上の変更点をもって対応する JavaScript のバージョンが 1.6 に引き上げられるかもしれない (Bug 306664) 。実際に引き上げられた。個人的には Rhino (Java で書かれた JavaScript エンジン) が 1.6 で E4X をサポートしたのにならって、SpiderMonkey (Firefox に使われている JavaScript エンジン) でもバージョン 1.6 なら E4X を ("E4X=1" パラメータなしで) 解釈してほしいと思っているのだが。
XTF (おまけ)
JavaScript ではないが、XForms のサポート (拡張として提供される) は XTF (eXtensible Tag Framework) のサポートの上に成り立っている。これについての技術的なことは「XTF Readme 和訳」や「JavaScript で XTF の実装」を参考に (と自分の記事の宣伝) 。
コメント
トラックバック
このエントリのトラックバックURL: http://nanto.asablo.jp/blog/2005/09/04/62939/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。