Firefox 1.5 の JavaScript の主な変更点
2005-09-04


えむもじらにて 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 のサポート (拡張として提供される) は


続きを読む

[Mozilla Firefox]
[JavaScript]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット