javascriptのコンストラクタ呼び出しとやめる方法

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をなくせるので、値を変えられる心配がなくなり、いいと思います

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください