$関数

【抜粋】
function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}

ECMA-262 3rd Edition 7.6 識別子」によれば「ドル記号は機械的に生成されるコード中のみの使用を意図される。」とのことです。プログラマが識別子に$を使うのは構わないけど、イレギュラーだよ、ということでしょうか。「機械的に生成されるコード」の例としては、RegExp.$1とかがそうですね。

$関数は可変個引数を取ります。typeof演算子で文字列かどうかを判定します。文字列の場合、それをIDとみなして対応要素を取得します。文字列以外であればそのまま扱います。引数が1個ならそのまま、複数なら配列に格納して返却します。pushメソッドはArrayクラスの既存メソッドです。配列の最後尾に要素を追加します。

要素をそのまま返すというのは、ID、要素どちらでも扱える関数を作成する場合に便利です。

【例】
<html>
<head>
<title></title>
<script language="javascript" src="prototype.js" charset="utf-8"></script>
<script language="javascript">
<!--
function test(){
  $("test1").innerHTML =  "壱";
  
  //取得済みの要素オブジェクトも引数にできる。
  var elem = document.getElementById("test2");
  $(elem).innerHTML = "弐";
  
  //引数は複数可。返却値は要素オブジェクトの配列
  var ary = $("test1", "test2");
  ary[0].style.backgroundColor = "yellow";
  ary[1].style.backgroundColor = "blue";
}
//-->
</script>
</head>
<body>
<div id="test1">-</div>
<div id="test2">-</div>
<button onclick="test();">TEST</button>
</body>
</html>