カテゴリー
JavaScript

様々なオブジェクト(argumentsオブジェクト)について知ろう7

この章ではargumentsオブジェクトについて説明します。
argumentsオブジェクトは可変長引数の関数を作りたい時に使用します。
可変長引数の関数とは引数の数を初めから決められている関数ではなくて、後からでも自由に変えられる構造を持った関数です。
関数に渡された引数を1という形式で引き受けて引数の値を保持します。
つまり、argumentsオブジェクトは1を持っています。
argumentsオブジェクトは関数が呼び出されるときに自動的に作成され、呼び出された関数の中でだけ使われます。
では例をみてみましょう。11

1=>実引数4つでkeisan関数を呼び出していますが、argumentsを使うと後から実引数を何個付け足しても、通常の関数のように仮引数を新たに増やす必要はありません。
すべての実引数は1で受け取っています。1=> arguments.lengthと言う形式で実引数の数を取得します。
その引数の数だけ以下のように繰り返し、実引数を取得します。1結果は「100」です。

カテゴリー
JavaScript

様々なオブジェクト(Objectオブジェクト)について知ろう6

この章ではObjectオブジェクトについて説明します。
Object オブジェクトはすべてのオブジェクトの基本オブジェクトです。
Object オブジェクトのメソッドとプロパティはすべてのオブジェクトで使用できます。
つまり、JavaScriptのすべてのオブジェクトは自身のプロパティとメソッドと同時にObject オブジェクトのメソッドとプロパティも使うことが出来ます。
例えばtoStringメソッドはNumberクラスやStringクラスにもありましたが、これは元々、Objectオブジェクトのメソッドです。
ではObject オブジェクトの説明を始めます。
Object オブジェクトは1という形式で書きます。
以下の例はオブジェクトの箇所で説明しましたが、
1とオブジェクトを作成してから、データを入れていきます。1
次はObjectオブジェクトのプロパティやメソッドについて説明します。1 constructorプロパティにはオブジェクトを生成したコンストラクタへの参照が入っています。
typeof演算子は基本形を判別するために使われますが、これだけではObjectオブジェクトも配列も結果はobjectになってしまいますので、そこでconstructorプロパティを使うことでこれらの区別を付けることが出来ます。
では説明をします。1 =>配列オブジェクトを作成します。

1 => typeofで型の確認すると配列はobjectになります。
指定したデータがどのデータ型に当てはまるかを確認するにはtypeof演算子を使います。1
1=> Dateオブジェクトを作成します。

1=> typeofで型の確認すると配列はobjectになります。
配列オブジェクトとDateオブジェクトは共にオブジェクトなのでtypeofでは区別がつきません。例にはありませんが、以下の例の出力もobjectです。1 このような時にconstructorプロパティを使うと区別が出来ます。

1 => s.constructorにはオブジェクトを生成したコンストラクタへの参照が入っているので結果は1です。
これで配列オブジェクトであることが解ります。
1で確認するとtrueが出力されます。

 

1=> now.constructorにはオブジェクトを生成したコンストラクタへの参照が入っているので結果は1です。
ここでDateオブジェクトであることが解ります。
1で確認するとtrueが出力されます。

 

次はtoStringメソッドについて説明します。
このメソッドはオブジェクトを文字列に変換します。1 toStringメソッドはNumberクラスやStringクラスにもありました。
ObjectオブジェクトのtoStringメソッドは1を返します。
ObjectオブジェクトのtoStringメソッドを単体で使用しても意味ある値は得られません。
実はNumberクラスやStringクラスのtoStringメソッドはObjectオブジェクトのtoStringメソッドを上書きして使っています。
つまり配列の toString メソッドはObjectオブジェクトのtoStringメソッドの機能を借りて、「配列をコンマ区切りでつないで1 つの文字列にする機能」を新たに作成しています。

次はvalueOfメソッドについて説明します。
このメソッドはオブジェクトに関連した基本型の値を返します。1 ObjectオブジェクトのvalueOfメソッドを単体で使用すると1を返しますので、意味ある値は得られません。
NumberオブジェクトやDateオブジェクトなどでもvalueOfメソッドを使用できます。NumberオブジェクトやDateオブジェクトのvalueOf メソッドはObjectオブジェクトのvalueOfメソッドを上書きして使っています。
例えばDateオブジェクトのvalueOfメソッドはObjectオブジェクトのvalueOfメソッドの機能を借りて、以下の機能を持つことが出来ているわけです。1

カテゴリー
JavaScript

様々なオブジェクト(Dateオブジェクト)について知ろう5

この章ではDateオブジェクトについて説明します。
Dateオブジェクトは、日付や時間などを扱うためのオブジェクトです(以下の表はクリックすると大きくなります)。1111111111
Dateオブジェクトはオブジェクトを生成する時にはコンストラクタを使う必要があります。
コンストラクタについては説明済みですが、オブジェクトを作成する際に値を初期化する機能のことです。
以下にオブジェクトを作成する際の例を示します。1 =>コンストラクタの中身がカラの場合は現在の時刻と日付になります。1 => コンストラクタに1970年1月1日0時0分0秒からの経過をミリ秒で指定する方法です。
この例の意味は1970年1月1日0時0分0秒から12664939ミリ秒経過したと言う意味です。1 =>コンストラクタにダブルクォートで囲んだ日付文字列で指定する方法です。1 =>日付と時間に関する項目を「,」で区切って指定する方法です。
この形式の場合、月は0から11で指定します。1 =>末尾に999とありますが、ここの項目はミリ秒です。ミリ秒も加えることが出来ます。
では例を見てみましょう。111 結果は1 と今現在のデータが出力されます。
では内容を詳しく見てみましょう。1 =>Dateのコンストラクタはカラにして、オブジェクトを作成します。

1 => getFullYearメソッドで年のデータを西暦で取得します。

1=>getMonthメソッドの戻り値は0から11で返されるので(1から12が返されるのではありません)、今現在の月を取得しようと思えばその返された値に1を足してください。
つまり返される値は1なので、1を足せば現在の月になります

1=>getDateメソッドは現在の日を1~31の数で取得できます。

1=>getDayメソッドは今日の曜日を0から6の数値で返します。
日曜日の0から始まって土曜日が6と言う範囲です。
ですので、このまま返されても、数字が返されるだけなので何曜日か解りません。
そこで下のように配列を作ります。1 =>添え字0は日で、添え字6が土というように配列を作って、getDayメソッドの返される値に対応させます。
返される値は日曜日が0から始まって土曜日が6でしたね。

1 =>getDayメソッドで返された数値がweekに入っているので、それを配列の添え字にセットすれば曜日を取得出来ます。

1 =>getHoursメソッドは今現在の時を0から23の数値で取得します。

1 =>getMinutesメソッドは今現在の分を0から59で取得します。

1 =>getSecondsメソッドは今現在の秒を0から59で取得します。

1 =>getMillisecondsメソッドは今現在のミリ秒を0から999で取得します。
後は以下のように出力すると今現在の日付や時間が表示されます。1 次は世界協定時で現在のデータを取得します。111 世界協定時とは「世界で時刻を記録する時に使われている標準の時刻」です。
日本との時差は9時間です。
世界協定時の場合はUTCという文字が入っているメソッドを使います。
結果は以下の通りです。1 次はgetTimeメソッドとgetTimezoneOffsetメソッドの例を説明します。
では例をみてみましょう。1

1=>getTimeメソッドは1970年1月1日の午前0時から現在の時刻までをミリ秒数で返す。

1 =>getTimezoneOffsetメソッドはグリニッジ標準時とローカル時間の差を分で返す。
差は9時間なので-540分を返します。
結果は上から以下の通り出力されます。1
次はUTC メソッドとparseメソッドについて説明します。
では例をみてみましょう。11 UTCメソッドは1970年1月1日午前0時から「指定の年、月、日、時、分、秒、ミリ秒の値」までを、ミリ秒に変換します。1 parseメソッドは日付文字列を1970年1月1日の午前0時からのミリ秒数で返します。
結果は上から以下の通り出力します。1
次の例ではsetメソッドでデータをセットしています。111 a.setFullYear(1999);
=>西暦を設定します。

a.setMonth(3);
=>月を設定します。

a.setDate(21);
=>日を設定します。

a.setHours(20);
=>時を設定します。

a.setMinutes(22);
=>分を設定します。

a.setSeconds(2);
=>秒を設定します。

a.setMilliseconds(345);
=>ミリ秒を設定します。

1 =>世界協定時を文字列に変換します。
=>Wed, 21 Apr 1999 11:22:02 GMT

1=>ローカル時間を文字列に変換します。
=> 1999/4/21 20:22:02
1=>ローカルの日付部分を文字列として返します。
=> 1999/4/21

 

1=>ローカルの時刻部分を文字列に変換します。
=>20:22:02

 

1=>グリニッジ標準時を文字列に変換します。1

 

1=>時刻部分を文字列に変換します。1

 

1 =>日付を文字列に変換します。
=>Wed Apr 21 1999 20:22:02 GMT+0900 (東京 (標準時))
では次の例を見てみましょう。111 toUTCStringメソッドは世界協定時を文字列に変換します。
=>何も日付をセットしていない状態でtoUTCStringメソッドを出力しています。
結果は1です。

次は世界協定時の日時をセットするメソッドについて説明します。以下が主要なメソッドです。11 日付や時刻をセットしたのが以下の箇所です。
引数には上の表にある数値の範囲で設定します。1 出力結果は以下の通りです。1

次はsetTimeメソッドについて説明します。
では例をみてみましょう。1 setTimeメソッドは1970年1月1日午前0時からの経過ミリ秒を設定するメソッドです。
1のようにカッコの中にミリ秒形式で書きます。
このセットしたミリ秒を出力するにはtoStringメソッドを使います。
結果は以下の通りです。1
次はvalueOfメソッドについて説明します。1 valueOfメソッドは1970年1月1日午前0時からの経過をミリ秒形式で返します。
結果は以下の通りです。1 今現在は1970年1月1日午前0時から1378179514776ミリ秒経っていると言うことです。

次は日付や時間のデータを操作する方法について説明します。
例えば2時間進める、4年戻すなどの操作を行います。
では例をみてみましょう。111 結果は以下の通りです。1 1=>今の年から4年引きたい場合は「-4」と記述します。

1 =>時間を2時間進めたい場合は「+2」と記述します。
このように加算減算して日付や時間のデータを操作することが出来ます。

カテゴリー
JavaScript

様々なオブジェクト(Mathオブジェクト)について知ろう4

この章ではMathオブジェクトについて説明します。
Mathオブジェクトのプロパティとメソッドはすべて静的プロパティと静的メソッドです。
Mathオブジェクトはコサインやタンジェントなどの計算を行うオブジェクトです。11 このプロパティを使うにはもちろん数学の知識が必要です。
では例をみてみましょう。11 111では例をみてみましょう。1 例えばアークコサインを得たい場合には1という形式で書きます。
結果は上から以下の通り出力します。1
次はmaxメソッドminメソッドについて説明します。1

次はMath.maxとMath.minについて説明します。
1

1=>大きい方を返すので10を返します。

1 =>大きい方を返すので90を返します。

1 =>引数の中に数値ではないものがあれば、NaNが返されます。

1=>小さい方を返すので8を返します。

1=>小さい方を返すので8を返します。

1=>引数の中に数値ではないものがあれば、NaNが返されます。1
では例をみてみましょう。1 結果は以下の通り1までの範囲でランダムに出力されます。1

次はMath.roundメソッドについて説明します。1Math.roundメソッドは数値の小数点以下を四捨五入します。

では例をみてみましょう。1 注目点はマイナスの数値で例のように-3.5など終わりが「.5」
の場合は「.5」以下が切り捨てになりますので気をつけてください。
1のように1の場合は-4と正確に表示されます。
結果は上から以下の通り出力されます。1

次はMath.ceilメソッドについて説明します。1Math.ceilメソッドは小数点以下の値を切り上げした整数を返します。
必ず引数より大きい整数を返します。
では例をみてみましょう。1 結果は上から以下の通り出力されます。1次はMath.floorメソッドについて説明します。1Math.floorメソッドは小数点以下の値を切り下げした整数を返します。
必ず引数より小さい整数を返します。
では例をみてみましょう。1 結果は以下の通りです。1

カテゴリー
JavaScript

様々なオブジェクト(Arrayオブジェクト)について知ろう3

この章ではArrayオブジェクトについて説明します。
Arrayオブジェクのプロパティやメソッドで配列に対して様々な操作を行うことが出来ます。
配列の要素の順番を変えたりするプロパティやメソッドについて説明します。1 length プロパティは配列の最後の添え字に1を足した数を返します。
では例をみてみましょう。11 1=>添え字に1を足した数を返すと書きましたが、簡単に言いますと要素の数です。
要素の数は5個なので、5を返します。

1=>「配列.length =数;」と言う形式で記述すると配列の要素を増やしたり、減らしたりすることが出来ます。
この例の場合は配列の要素を2つ増やして、7にしています。
追加した残りの要素には何も入っていないので、
1と、出力すると結果は
undefined
undefined
です(未定義値)。
逆にperson1.length=2;と、要素数を減らすと残りの要素は無くなってしまいますので、for文で取り出すと
結果は
kondou
shimizu
です。1 toStringメソッドはArrayオブジェクトを文字列に変換します。
配列の要素を「,」で繋げた形で出力されます。
では例をみてみましょう。1 結果は以下の通りです。11 joinは配列の要素を指定した区切り文字で区切って繋げてくれます。
例の場合は「@」で区切っています。
では例をみてみましょう。1 結果は以下の通りです。1 以下のようにjoinのカッコの中をカラにしますと、「,」で連結されます。
person1.toString()と同じ結果になります。1 結果は2つとも以下の通りです。11 sortメソッドはArrayオブジェクトをアルファベットの順番に変えます。
では例をみてみましょう。1 結果は上から以下のように出力します。11 アルファベットを使った配列の場合はアルファべット順に変えてくれるので問題ないですが、
1のように要素が数字の場合は数字の順番に並べてくれるわけではないので、気を付けてください。1 reverseメソッドはArrayオブジェクトを現在の要素と逆順に変えます。
では例をみてみましょう。1 結果は上から以下のように出力します。11 sliceメソッドは配列の要素を取り出します。
では例をみてみましょう。1 以下に開始位置、終了位置の数え方を書きます。
終了位置は指定した位置の一つ前までになります。
0番目 kondou 
1番目 shimizu 
2番目 honda
3番目 doumoto
4番目 inukai
結果は上から以下の通り出力します。11 =>spliceは開始位置から数えて何個置換するか決めて、それを置換文字列で置き換えます。
1=>開始位置から何個削除するか指定すると、その要素が削除されます。
では例をみてみましょう。1 では説明を始めます。1 1切り取った要素はこの例のsのように受け取ることが出来ます。1 3個切り取ったのに、2個しか代わりに入れなかった場合には要素数が1つ減ることになります。
逆に3個切り取って、代わりに4個入れた場合は要素数が1つ増えることになります。
結果は上から以下の通り出力します。11 popメソッドは、配列の一番後ろの要素を削除します(要素の数は1つ減る)。
では例をみてみましょう。1 結果は上から以下の通り出力します。1 削除したものを受け取りたい場合は1のように変数で受け取ります。
最後に1と、出力すると末尾のinukaiが削除された状態で出力されているのが解ると思います(元の配列も実際に削除されます)。1 pushメソッドは、配列の末尾に要素を追加します(追加した分、要素数は増えます)。
カンマで区切れば、いくらでも要素を追加することが出来ます。
では例をみてみましょう。1 結果は上から以下の通り出力します。1 要素数を受け取りたい場合は1のように変数で受け取ります。
この例の場合は4です。
つまり、pushメソッドの戻り値は要素数です。
1を出力するとkonno,hiroが追加されているのがわかります。1 shiftメソッドは、配列の一番前の要素を削除します(要素の数は1つ減ります)。
では例をみてみましょう。1 削除した要素を受け取りたい場合は1のように変数で受け取ります。
1で出力すると実際にkondouが削除されて出力されているのが解ります。
結果は上から以下の通り出力します。11 unshiftメソッドは、配列の一番前に要素を追加します(追加した分、要素数は増えます)。
カンマで区切れば、いくらでも追加することが出来ます。
では例をみてみましょう。1 要素数を受け取りたい場合は1 のように変数で受け取ります。この例の場合は7です。
つまり、unshiftメソッドの戻り値は要素数です。
1で出力するとyumenoとnakataが追加されているのがわかります。1 例えば以下のsliceメソッドは文字を取り出していますが、これは元の配列には影響しませんが、上のpopメソッドなどは実際の配列まで変化します。1 上から出力すると以下の通りに出力しますが、途中で取り出しても最初と最後の配列の要素が変わっていないことが分かります。1

カテゴリー
JavaScript

様々なオブジェクト(Stringオブジェクト)について知ろう2

この章ではStringオブジェクトについて説明します。これも組み込みオブジェクトなので、簡単に文字列に関しての機能を使うことが出来ます。1 初めにオブジェクトを作成してから、様々なメソッドなどを実行します。1 lengthは文字列の長さを取得します。
では例をみてみましょう。1 全角文字、半角文字ともに1と、数えます。
結果は「8」です。1 charAtは文字列の一部を取り出します。
ここでの注意は「取り出す文字の位置」は0から数えてください。1 1から数えるのではないので注意してください。
a.charAt(30)のように指定した数が文字数を超えているような場合はカラが返されます(何も表示されない)
では例をみてみましょう。1 指定位置の数え方は以下のようになります。
0番目=>a
1番目=>b
2番目=>c
結果は「b」です。1 substringメソッドは指定した範囲の文字列を取り出します。
引数で「取り出す文字列の範囲」を指定して、その個所を取り出します。
例えばa.substring(0,3)は0番目の文字から3番目の文字の一つ前までを取り出すと言う意味です。終了位置の一つ前までなので気を付けてください。
では例をみてみましょう。11 substring(0,2)
=>0番目から2番目の手前までなので、答えはabです。
substring(2,0)
=>開始位置のほうが終了位置より大きい場合は後ろから前へ数えます。つまり2番目のひとつ前(つまりb)から、先頭まで取り出しますので、答えはabです。
substring(4,7)
=> 4番目から7番目の手前までなので、答えはefgです。

substring(4)
=>終了位置を省略した場合はその位置から末尾まですべて取り出すので、結果はefghiです。1 sliceメソッドは指定した範囲の文字列を取り出します。
引数で「取り出す文字列の範囲」を指定して、その範囲を取り出します。
例えばa.slice (0,3)は0番目の文字から3番目の文字の一つ手前までを取り出すと言う意味です。
では例をみてみましょう。1 1slice (0,3)
=>0番目から3番目の手前まで。
答えはabc です。

slice (4,7)
=> 4番目から7番目の手前まで。
答えはdef です。

slice (2,0)
=>開始位置の番号のほうが終了位置の番号より大きい場合は何も返されません。

slice(4)
=>終了位置を省略した場合はその位置から末尾まですべて取り出します。
結果はdef ghiです。

slice(-11,-8)
=>sliceでは開始位置、終了位置ともにマイナスの指定も出来ます。マイナス指定の場合は末尾から1と、数えます。
結果はabcです。

slice(-11,7)
=>このように開始位置がマイナス指定で、終了位置がプラス指定と言う組み合わせも可能です。
結果はabc defです。

slice(4,-2)
=>このように開始位置がプラス指定で、終了位置がマイナス指定と言う組み合わせも可能です。 結果はdef gです。1 => concatメソッドは文字列と文字列を結合する機能を持っています。
文字列1,文字列2….を結びつけます。
文字列は「,」で区切れば何個でも書けます。
以下のようにconcatと同じ結果が「+」を使用しても実現できます。
では例をみてみましょう。111 substrメソッドは指定した範囲の文字列を取り出します。
では例をみてみましょう。11 substr (0,3)
=>0番目から3つ切り取ります。
結果はabc です。

substr (4,7)
=> 4番目から7つ切り取ります。
結果はdef ghiです。

substr (2,0)
=> 2番目から0個なので何も返されません。

substr (4)
=>個数を省略した場合はその位置から末尾まですべて取り出します。
結果はdef ghiです。

substr (-11,-8)
=>個数のマイナスの指定はできません。ですので、何も表示されません。

substr (-11,7)
=>このように開始位置がマイナス指定で、個数がプラス指定と言う組み合わせも可能です。
結果はabc defです。1 indexOfは指定した文字列を先頭から右側に向かって検索します。
検索した結果、その文字がなかった場合は-1が返りますし、文字が見つかった場合はその文字の先頭位置を返します。
検索開始位置を省略した場合は0が指定されたとみなされます。
では例をみてみましょう。1 結果は「8」と「9」です。1 検索開始位置の2(cの部分)はここから右方向に検索が始まるというだけで、返される番号は先頭から数えた数になるので注意してください。
つまり,cの部分から数えた数が返されるのではありません。1 lastIndexOfは指定した文字列を後ろから先頭に向かって検索します。
検索した結果、その文字がなかった場合は-1が返りますし、文字が見つかった場合はその文字の先頭位置を返します。
検索開始位置を省略した場合は末尾が指定されたとみなされます。
以下の例はlastIndexとindexOfを較べています。1 11=>末尾から検索しているので、gchiのcが該当します
1=>先頭から数えているので、abcのcが該当します
1=>前から数えて6番目の文字(この例ではdです)から先頭に向かって検索します。hiは4番目にあるので4が返されます(ヒットした位置は先頭から数えます)。
1=>前から数えて6番目の文字(この例ではdです)から末尾に向かって検索します。hiは12番目にあるので12が返されます。
1toLowerCaseメソッドは文字列を小文字に変換します。
toUpperCaseメソッドは文字列を大文字に変換します。
では例をみてみましょう。1 結果は
「abcdefg」

「ABCDEFG」
です。1 charCodeAtメソッドは引数で指定した箇所にある文字のUnicode の値を返します。
Unicodeは「世界中の文字を共通した方法で符号化」して、コンピュータ上で扱えるように作られた文字コードです。
では例をみてみましょう。1 Cの文字コードは67なので
結果は「67」です。
charCodeAt で返されるUnicodeの値は65.536より小さい値を返します。

カテゴリー
JavaScript

様々なオブジェクト(Numberオブジェクト)について知ろう1

JavaScriptには初めから定義されているオブジェクトが多数あります。1 これらを「組み込みオブジェクト」と言います。
つまり、自分でメソッドやプロパティを作らなくても、JavaScriptが初めから作ってくれているオブジェクトです。
ではNumberオブジェクトから説明します。
以下がNumberオブジェクトのメソッドとプロパティです。111 では例を見てみましょう。1 1初めにオブジェクトを作成してから、様々なメソッドを実行します。1 この例では引数である10をtoStringメソッドで8進数や16進数に変換します。何も指定しなかった場合は10進数になります。
結果は上から
「10」と「12」と「a」
です。1 このメソッドは「指定した数で四捨五入」します。つまり1を指定した場合は小数点第1位で四捨五入します。指定する数は0 ~ 20までとなります。
では例をみてみましょう。1 結果は上から
「15」「15.4」「15.36790」
です。1 toExponentialメソッドは数値オブジェクトを指数表記に変換します。
では例をみてみましょう。111 toPrecisionメソッドは数値を1で表した文字列を返します。
指定可能な数は1から21 までです。
では例をみてみましょう。1 a.toPrecision(3)は有効桁数が3桁ですので、小数点以下が四捨五入されて「68.2」になります。
a.toPrecision(2)のように有効桁数がオブジェクトの整数部分と同じ場合は小数点以下が四捨五入された数値を返します。
この例では「68」になりますが、例えばaが68.7534であれば「69」になります。
a.toPrecision(1)のように有効桁数がオブジェクトの整数部分より小さい場合には指数表記になります。
a.toPrecision()のように有効桁数を指定しない場合にはtoString メソッドが代わりに呼び出されます。1
次はNumberオブジェクトのプロパティに進みます。
以下のプロパティは静的プロパティなので、オブジェクトを作成しなくても使用できます。1 では例をみてみましょう。11

カテゴリー
JavaScript

静的メソッド、静的プロパティについて知ろう

この章ではオブジェクトを作成しなくても(newを使わない)、クラスのメソッドやプロパティを呼び出せる静的メソッド、静的プロパティについて説明します。
今まではオブジェクトを作成してから、以下のようにデータを入れていました。11 しかし、静的メソッド、静的プロパティではオブジェクトを作らなくても、直接データを入れることが出来ます。
では例をみてみましょう。11 これまではnew を使用したオブジェクトからメソッドやプロパティを呼び出していましたが、オブジェクトを作成しなくても直接メソッドやプロパティを追加したり、呼び出したりすることが出来ます。
つまり、静的メソッド、静的プロパティはクラスに属するメソッドやプロパティと言うことです。
以下の構文をみていただくと分かりますが、クラス名で変数やメソッドに値を入れているのが分かります。これがクラスに属しているという意味です。1 オブジェクトを作成してからプロパティに値を入れたり、変更する場合には、複数のオブジェクトを作ったとしても変更されるのはそのオブジェクトに属するプロパティだけです。
例えば次の例のshopオブジェクトとshop2オブジェクトはそれぞれプロパティに値を入れていますが、これらのプロパティの間には値の共有はありません。
なぜなら、これらのプロパティはそれぞれのオブジェクトに属しているからです。111 オブジェクトに属するプロパティと違って静的プロパティはクラスに属するので、プロパティが持つ値は1つです。
例では以下の箇所が静的メソッドと静的プロパティです。1 静的メソッドを出力する場合には1という構文で書きます。1 注意点としては静的メソッド内でthis(インスタンス自身)を使うことが出来ないことです。
結果は「消費税は100円です」です。

カテゴリー
JavaScript

prototypeについて知ろう2

この章ではプロトタイプの変数(プロパティ)を作成する方法について説明します。
prototypeプロパティを使えるのはメソッドだけではありません。
では例をみてみましょう。11 結果は「近藤23清水23」です。1 この例ではカラのPersonクラスに1 のようにデータを入れています。
これでa1オブジェクトとa2オブジェクトの両方で変数(プロパティ)を使用できるようになります。
値を変更したい場合は1という形式でデータを上書きします。
例では1の箇所です。

カテゴリー
JavaScript

prototypeについて知ろう1

この章ではprototypeプロパティについて説明します。
prototypeプロパティを使うことで特定のオブジェクトに属さないメソッドを作成することが出来ます。
詳しい説明は次の例の後に行います。111 以下のように特定のオブジェクト名(shop)でメソッドを追加すると他のオブジェクト(shop2)はそのメソッドを使うことが出来ません。1下の例では「すべてのオブジェクトで使うことのできる共通のメソッド」をprototypeプロパティを使って設定しています。111 前の例の以下の箇所をprototypeプロパティを使って書き換えるとshop2オブジェクトでも使えるようになります。1 以下の箇所がprototypeプロパティで書き換えた例です(スペースの都合で3行で書いていますが1行で書いても結構です)。1 上記のように書き替えたのでshop2オブジェクトでもgetGoukeiメソッドを使うことが出来ます。11 オブジェクト間で共通するメソッドなどはprototypeを使用して1のように設定するとオブジェクトがたくさん存在しても、同じ機能のメソッドは一つ書くだけで済むのでプログラムでのメモリを無駄に消費しないで済むというメリットがあります。