Во-первых: не называйте вашу функцию Object
, она затеняет глобальный Object
конструктор.
Я не вижу причины, по которой вы должны присвоить naba
внутри bar
экземпляру. Почему вы это делаете? Вы можете назначить bar
и naba
прототипу функций:
function MyConstructor() {
this.foo = 0;
}
MyConstructor.prototype.bar = function () {
};
MyConstructor.prototype.naba = function () {
// this.foo
};
В конечном итоге это зависит от того, как вы вызываете функцию naba
. Тот факт, что вы присваиваете его this
, предполагает, что вы хотите вызвать его с
var obj = new MyConstructor();
obj.naba();
Если вы хотите добавить naba
только после вызова bar
, вы все равно можете получить доступ к foo
через this.foo
:
MyConstructor.prototype.bar = function () {
if(!this.naba) {
this.naba = function() {
// this.foo
};
}
};
var obj = new MyConstructor();
obj.bar();
obj.naba();
Если вы хотите получить правильный / лучший ответ, вы должны показать, как вы собираетесь использовать naba
.