Используя следующий бит кода:
function Node(){
....
function foo(request){
for (var name in this ) {
log(name +" is "+this[name]);
if(!(name == 'all' || typeof this[name] == 'function')){
request[name] = this[name];
}
}
return ...
};
}
Я был удивлен, что когда частная функция foo
вызывается this
, похоже, не ссылается на содержащий объект (экземпляр Node
). Почему это так?
Конечно, я мог бы иметь что-то вроде:
function Node(){
var ref = this;
....
}
и использовать ref
как this
в foo
, но есть ли способ объявить частные методы, для которых this
является ссылкой на содержащий объект?