function invoke(func, x, y) {
    return func(x, y);
}

function foo(x, y) {
    return x * y;
}

foo.value = invoke(foo, 3, 5);

var bar = foo;

alert(bar.value);
alert(foo.toString());
alert(foo === bar);

JavaScript では、関数はオブジェクトの一種である。
関数は、通常のオブジェクトとしての特性に加え、
() 構文で「呼び出し可能」という特徴を持つ、
特別なオブジェクトとして扱われる。