関数 – 猫のスライドショーを作る5

スポンサーリンク


オブジェクト – 猫のスライドショーを作る4のつづき。

前回、関数もオブジェクトである。と軽く触れましたが、関数の初期化と使い方について、書きます。

たとえば、自動車というモノがあったとします。
同じエンジン、同じ車体で、色だけ違う自動車を作りたい。
エンジンが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();

というふうに、書きます。

つづく


関連コンテンツ

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください