- 勉強がてら。「TypeScript使えばいいじゃん」「ES6」とか言わないで。
hogeクラスをつくるとき
1. 一般的なつくりかた
// constructor
var hoge = function(arg) {
this.x = 5;
this.y = 10;
this.z = arg;
};
// メソッド
hoge.prototype = {
f1: function() {
return true;
},
f2: function() {
return false;
}
};
var instance = new hoge(1);
// hoge {x: 5, y: 10, z: 1, f1: function, f2: function}
2. グレートなつくりかた
var hoge = (function() {
var FOOFOO = 777; // クラス内定数
// constructor
var hoge = function(arg) {
this.x = 5;
this.y = 10;
this.z = arg;
};
var p = hoge.prototype;
p.f1 = function() {
return true;
};
p.f2 = function() {
return false;
};
return hoge;
})();
var instance = new hoge(1);
// hoge {x: 5, y: 10, z: 1, f1: function, f2: function}
所感
- 個人的には1よりも2の方がまとまっていて好きです。
- 「2でクラスつくろうよ」と言いたかっただけ。