хмм... ну все же написано уже :)
а у дебройля вообще длинно и подробно разжевано...
смотри:

Код:
Pet = function (name) {
trace("test : "+this+" : "+this.test);
};
Dog = function (name) {
trace("is Pet function here ? "+(Pet ? "yes" : "no"));
Pet();
trace("is this.Pet function here ? "+(this.Pet ? "yes" : "no"));
this.Pet();
};
Dog.prototype.test = "this is a Dog class member";
rover = new Dog("Rover");
убрали все лишнее..
в конструкторе Дог смотрим видна ли функция (ЭТО НЕ МЕТОД) Pet в данной области видимости имен. потом проверяем то же самое для this.Pet...
this.Pet естесственно не видна. если бы мы сделали так:

Код:
Pet = function (name) {
trace("test : "+this+" : "+this.test);
};
Dog = function (name) {
trace("is Pet function here ? "+(Pet ? "yes" : "no"));
Pet();
trace("is this.Pet function here ? "+(this.Pet ? "yes" : "no"));
this.Pet();
};
Dog.prototype.test = "this is a Dog class member";
Dog.prototype.Pet = Pet
rover = new Dog("Rover");
то все бы заработало. потому что мы добавили к классу Дог МЕТОД Pet.
а в примере дебройля именно это и происходит.. мы добавляем к экземпляру класса Дог метод Пет.. просто потом его сразу удаляем после использования.