Когда вы делаете это ...
myObject.prototype.myMethod=
{
foo3:'foo'+this.foo;
}
значение this
оценивается из текущего контекста, в котором создается объект, который, вероятно, не имеет свойства foo
.
Не знаю, почему вы называете это myMethod
, но присваиваете объект, но если вы действительно сделали его методом, вы могли бы получить правильное значение foo
.
function myObject(){
this.foo="bar"
this.foo2=this.myMethod();
alert(this.foo2);
}
myObject.prototype.myMethod= function() {
return 'foo'+this.foo;
};
var o = new myObject(); // alerts "foobar", and returns the new object