JavaScriptには以下のネイティブオブジェクトがある
・Number()
・String()
・Boolean()
・Object()
・Array()
・Function()
・Data()
・RegExp()
・Error()
それらのうち上から6つを詳しくみていく。(前編ではObject()とFunction())
リンク:後編
##Object()オブジェクト
###定義方法
var sample = {}; //もしくはvar sample new object();
###Object()が持つインスタンスプロパティとインスタンスメソッド
・インスタンスプロパティ
constructor・・・どのオブジェクトの種類なのかが格納されているプロパティ
・インスタンスメソッド
hasOwnProperty(V)
isPrototypeOf(V)
propertyIsEnumerable(V)
toLocaleString()
toString()
valueOf()
###オブジェクトリテラルでObject()を生成する
ドット記法でプロパティを追加していくのは行数が多く、効率が悪いので、宣言時にプロパティを追加する場合はオブジェクトリテラルを使う。
//ドット記法で追加
var sample = new Object();
sample.a = 1;
sample.b = 2;
sample.c = 3;
//オブジェクトリテラル
var sample = {a;1, b:2, c:3};
##Function()オブジェクト
###定義方法
//関数宣言
function sample(param1, pram2){
return pram1 + pram2;
}
//関数式
var sample = function(pram1, pram2){
return pram1 + pram2;
};
//関数式(再帰を使う場合に使用)
var sample = function sample(pram1, pram2){
return pram1 + pram2;
};
//匿名(無名)関数
(function(){
})
###Function()が持つインスタンスプロパティとインスタンスメソッド
・インスタンスプロパティ
constructor
arguments・・・関数に渡された引数を格納する配列のようなオブジェクト
使用例
var add = function(){
return arguments[0] + arguments[1];
};
console.log(add(4,4)); //出力:8
length・・・パラメータの数を返す
使用例
var myFunction = function(z, s, d){
return arguments.length;
};
console.log(myFunction(z, s)); //出力: 2 渡したパラメータの数を出力する(argumentsのサイズ)
var myFunction = function(z, s, d){
return myFunction.length;
};
console.log(myFunction(z, s)); //出力: 3 関数が期待するパラメータの数を出力する
・インスタンスメソッド
apply(thisArg, argArray)・・・thisArgにthisの値を渡し、argArrayに渡された配列を引数リストとして関数を実行する
call(thisArg [, arg1 [, arg2 [, ...]]])・・・thisArgにthisの値を渡し、関数を実行する。第二引数以降の引数が実行関数の第一引数となる
toString()・・・関数を文字列として返す
###関数の即時実行と再帰呼び出し
関数定義の後に()演算子を付与することによって、その場で実行することができる。()の中には引数を与える
var add = function(a, b){
console.log(a + b); //出力: 3
}(1, 2);
関数は自身を呼ぶことができる。これを再起呼び出しという。
var countDownFrom = function(num){
console.log(num);
num--;
if(num < 0){
return false;
}
countDownFrom(num);
}
countDownFrom(5); //出力: 5,4,3,2,1,0
##リファレンス
開眼!JavaScript(3章,4章)