javascriptでnewをつけて呼び出すことを前提にした関数をコンストラクタと呼ぶようです
こんなので、最初を大文字にするのが慣例らしいです
var Sample = function (v) {
this.value = v;
}
var mySample = new Sample(100);
console.log(mySample.value); // 100
newされると新しいオブジェクトが生成される
newされたオブジェクトは、もとのprototypeリンクをもつので
var Sample = function (v) {
this.value = v;
}
Sample.prototype.get_value = function() {
return this.value;
};
var mySample = new Sample(100);
console.log(mySample.get_value()); // 100
としてあげるとnewされたオブジェクトがget_value関数を使えるようになる
newをしないで同じことをするには
var sample = function(v) {
return {
get_value: function() {
return v;
}
};
}
var mySample = sample(100)
console.log(mySample.get_value()); // 100
this.valueをなくせるので、値を変えられる心配がなくなり、いいと思います