javascriptの関数は、一般的なプログラム言語と同様の書き方はもちろん、関数そのものを変数に代入する書き方もあります。
また、配列や値を複数持つ配列をオブジェクトとみなし、オブジェクトに対しての関数をメソッドという名で呼び出して使うことができます。
メソッドについては、独自のメソッドを定義し、オブジェクトに付与して呼び出すこともできます。
下記の一連のプログラムは、実際に書いて動作させてみた結果です。
//関数の定義
function sample(a) {
return a + 1;
}
//関数のコールと結果
console.log(sample(5)); //6
//関数の定義を変数に代入する方法
var sample_func = function(a) {
return a + 2;
};
//関数のコールと結果
console.log(sample_func(7)); //9
//関数をオブジェクトと組み合わせる
//空配列を作成する
var a = [];
//配列に値を代入する
a.push(5, 6, 7);
//aをオブジェクトとしてみなすと、オブジェクトに対しての
//関数「メソッド」が使用できる
console.log(a); //Array[5, 6, 7]と表示される
a.reverse();
console.log(a); //Array[7, 6, 5]と表示される
//別々のオブジェクトを持つ配列を宣言する
var testarray2 = [
{a:0, b:0},
{a:2, b:2}
];
//配列に対し、独自メソッドを追加する
testarray2.dist = function() {
var p1 = this[0]; //{a:0, b:0}の値のことを示す
var p2 = this[1]; //{a:2, b:2}の値のことを示す
//2つのオブジェクトの値(0:0)、(1:1)の平方根を求めて返す
var a = p2.a - p1.a;
var b = p2.b - p1.b;
return Math.sqrt(a*a + b*b);
};
//別々のオブジェクトの平方根を求めた結果
console.log(testarray2.dist()); //2.8284271247461903