前回の投稿「JavaScript, 匿名関数の実行そして関数と変数の隠匿」を応用するとprivateな関数・変数を作成できます。
var Book = (function (){ var cost = 1000 ,tax = 0.05 ,price = function () { return cost * (tax + 1) }; return { getPrice : function () { return price();//cost * (1 + tax); } ,getTax : function () { return cost * tax; } }; })(); console.log(Book.getPrice());//1050 console.log(Book.getTax());//50 console.log(Book.price());//error |
Book
はstaticな関数を持ったクラスのように使えます。
getPrice, getTax
はstatic public function
として利用できます。
cost, tax, price
はprivateのように隠匿され外部からアクセスできません。
ピンバック: JavaScriptでOOP – Classみたいなのにprivateな関数と変数 | イナヅマtvログ
ピンバック: 超個人的メモ, JavaScript関連の投稿リンクをまとめておく - イナヅマtvログ