関数について

function foo() {
}

var foo = function() {
}

foo()  <- ()をつけると、関数になる。

関数はオブジェクト。

var foo = new Object();
foo.name1 = hoge;
foo.name2 = function() {
};
は
var foo = {
  name1 : hoge,
  name2 : function() {...},
}
とおなじ。

JavaScriptのオブジェクトはハッシュテーブルのようなもの

配列のlengthプロパティは、「インデックス最大値 + 1」を表す値で自動的に更新される特殊なプロパティ
添え字として無効なキーは、lengthに影響を与えない

コンストラクタ作成---インスタンス
function foo() {...}
var hoge = new foo();

オブジェクトにプロパティを後からセットすることも可能
hoge.name = "value";
関数オブジェクトを作成するもう一つの方法として、Functionクラスのコンストラクタ
を使用することもできます。
var hello = new Function("...");

 Functionコンストラク
以下のような定義になっています。

Function (p1, p2, … , pn, body)

 p1からpnまでは関数の仮引数、
bodyは関数の本体を表しており、
すべて文字列で指定します。

Objectは単数形
function,Functionは複数形
っていう認識でいいのかな?