JavaScript 規約①

以下に、JavaScriptのコーディングを統一するためのルールを提示する。

名前のルール

①変数……すべて小文字で表現する。単語をつづける場合はアンダーバーでつなげる。


    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



JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
Douglas Crockford
オライリージャパン
売り上げランキング: 5275

0 件のコメント:

コメントを投稿