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”