名前のルール
①変数……すべて小文字で表現する。単語をつづける場合はアンダーバーでつなげる。name_name
②定数……すべて大文字で表現する。単語をつづける場合はアンダーバーでつなげる。var宣言なし。
NAME_NAME
③インスタンス変数……先頭にアンダーバーをつける。すべて小文字で表現する。単語をつづける場合はアンダーバーでつなげる。
_name_name
④オブジェクト……頭文字のみを大文字にする。単語をつづける場合も頭文字を大文字にする。
NameName
⑤関数・メソッド……はじめの単語は小文字で、単語をつづける場合はそれ以降の単語の頭文字を大文字にする。
nameName
オブジェクトの定義と生成(関数型)
オブジェクトとは、複数のデータの塊である。くわえて、データを操作するAPI(メソッド)を提供する。オブジェクトの定義には関数型を採用しこれに統一する。変数(var宣言)に関数(function文)を代入することで定義する。
var Vector = function () {}; //代入なので最後にセミコロンをつける
var v = Vector(); //インスタンス生成。()をつける
オブジェクト内で定義する変数(データ・プロパティ)はすべてprivateとする。つまりvar宣言する。そして、慣習により先頭にアンダーバーをつける。
var Vector = function (x, y) { //二次元ベクトルのオブジェクト
var _x = x, _y = y; //まとめて宣言可
};
var v = Vector(2, 4); //インスタンス生成
しかしこのままではデータを保持してるだけで操作できない。データを操作するためのメソッド(API)を用意する。メソッドはハッシュ(連想配列)のなかに格納し、returnで返す。これによりpublicなメソッドになる。格納するハッシュオブジェクトの名前はthatに統一する。
var Vector = function (x, y) {
var _x = x, _y = y, that = {}; //thatに空のハッシュを代入
that.getX = function () { return _x }; //ゲッタメソッド
that.getY = function () { return _y }; //内部データを取得
that.setX = function (x) { _x = x }; //セッタメソッド
that.setY = function (y) { _y = y }; //内部データを設定
return that;
};
var v = Vector(2, 4);
var x = v.getX(); //x => 2
var y = v.getY(); //y => 4
v.setX(5);
v.setY(8);
x = v.getX(); //x => 5
y = v.getY(); //y => 8
Douglas Crockford
オライリージャパン
売り上げランキング: 5275
オライリージャパン
売り上げランキング: 5275

0 件のコメント:
コメントを投稿