スポンサーリンク
前回、関数もオブジェクトである。と軽く触れましたが、関数の初期化と使い方について、書きます。
たとえば、自動車というモノがあったとします。
同じエンジン、同じ車体で、色だけ違う自動車を作りたい。
エンジンがV型10気筒、車体がフェラーリだとします。
色は、赤、緑、青の3台を作る。これをオブジェクトにするなら、
car_red={
engine:'V10',
chassis:'ferrari',
color:'red'
}
car_green={
engine:'V10',
chassis:'ferrari',
color:'green'
}
car_blue={
engine:'V10',
chassis:'ferrari',
color:'blue'
}
と、なります。
しかし、この3つ、赤字の部分以外は、全く同じです。
関数もオブジェクトなので、これを関数化して、自動で初期化させるようにします。
関数による初期化
詳細は後述しますので、先にソースを書きます。
var car = function(color){
this.engine = 'V10';
this.chassis: = 'ferrari';
this.color = color;
}
var car_red = new car('red');
var car_green = new car('green');
var car_blue = new car('blue');
引数
functionのあとの(と)の間にcolorとあります。これは、引数といって、関数に与える値です。
関数には、値を指定できます。たとえば、次の関数の場合、
var car = function(color){
this.color = color;
}
car(‘red’)とすれば、this.colorはredになり、car(‘green’)とすれば、this.colorはgreenです。
では、thisとは何でしょう。thisは自分自身です。
this
前回、下の2つは同じであると説明しました。
obj = {
engine:'V10',
chassis:'ferrari'
}
obj = {};
obj.engine='V10';
obj.chassis='ferrari';
thisというのは、自分自身です。だから、下の2つは同じ意味です。
var car = function(color){
this.engine = 'V10';
this.chassis: = 'ferrari';
this.color = color;
}
var car = {};
car.engine = 'V10';
car.chassis: = 'ferrari';
car.color = color;
new
関数を使って、オブジェクトを作る時は、
new function();
というふうに、書きます。
つづく
関連コンテンツ
スポンサーリンク