JavaScript プロパティ―がインスタンス毎に独立していない

CTest: {
var me = this;

CTest = function () {
me.val = ”;
}
var p = CTest.prototype;
p.setVal = function(pVal) {
me.val = pVal;
}
p.dispVal = function () {
console.log(‘dispVal ‘ + me.val);
}
}

var a = new CTest();
a.setVal(‘aa’);

var b = new CTest();
b.setVal(‘bb’);

a.dispVal();
b.dispVal();

実行結果は以下、同じ値になってしまう。
“dispVal bb”
“dispVal bb”

以下の感じで書けば大丈夫。

var CTest = function() {
// 非同期で呼ばれたメソッド内で this.xxxxx でアクセスできないので、 me を利用
var me = this;

me.val = ”;

me.setVal = function(pVal) {
me.val = pVal;
}
me.dispVal = function () {
console.log(‘dispVal ‘ + me.val);
}
}

var a = new CTest();
a.setVal(‘aa’);

var b = new CTest();
b.setVal(‘bb’);

実行結果は以下
“dispVal aa”
“dispVal bb”

コメントを残す

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