Pages

2012年3月31日土曜日

JavaScriptメモ その3

JavaScriptメモ その3!
Web上にメモしておかないと,いざという時使えないんですよ…….
あんまり本とか持ち歩かないし.


・クラス変数・クラス関数
// 税率関数となるオブジェクト
function Tax(){
}
// Taxのクラス変数とクラス関数
Tax.per = 0.05;
Tax.taxprice = function(price){
return price * (1+Tax.per);
}
Tax.untaxprice = function(price){
return (price / (1+Tax.per)).toFixed(1);
}

price = 1000;
console.log(Tax.taxprice(price));
console.log(Tax.untaxprice(price));


・プロトタイプ宣言…インスタンス毎に区別する必要が無いプロパティを隔離する

function Book(title, price){
//インスタンス毎に区別が必要なプロパティ
this.title=title;
this.price=price;
}

//区別が不必要なプロパティ
Book.prototype.tax = 1.05;
Book.prototype.withtax = function(){ return this.price * this.tax};

上記のwithtax関数より,prototype関数内では自身のインスタンスを参照するthisも使用できます.
また,this.taxで参照できる通り,prototypeで宣言された変数・関数はprototypeを省いて参照します.

・ローカル変数・関数によるプロパティへのアクセス制限
Javaでいうprivate修飾子によるアクセス制限と似ていますね.
プロパティではなく,ローカル変数に保存した値を関数で取得しています.
ただし,プロパティではないため,thisで参照することが不可能です.
function Book(t,p){
var title = t;
var price = p;

this.getTitle = function(){return title};
this.getPrice = function(){return price};
}
book = new Book("専門書", 1000);
console.log(book.getTitle());
console.log(book.getPrice());

0 件のコメント:

コメントを投稿