Сообщение от `p r o x y
|
да лана, тебе умничать
|
сам ты умничаешь
Сообщение от `p r o x y
|
Если в объекте не найден метод, он ищется в прототипе.
|
function c() {}
c.prototype.m1 = function() { alert(1); }
var o = new c();
o.m2 = function() { alert(2); }
o.m1();
o.m2();
Цитата:
|
в общем, без prototype-ов, так и не понял как добиться вызова одного метода из другого метода, одного и того же объекта
|
потом разберешься, если понадобится
Сообщение от `p r o x y
|
А с prototype-ом, вариант такой
|
лучше по-другому
function c() {}
c.prototype.m1 = function() {
alert(this instanceof c);
if( this.m2 )
this.m2();
}
c.prototype.m2 = function() { alert(2); }
var o = new c(); // здесь содержимое c.prototype
// копируется в прототип объекта o
var o2 = {
m3: o.m1, // эта ссылка указывает на o.prototype.m1
// (в объекте o нету метода m1
// но он есть в прототипе)
m4: function() {
// вызываем функцию o.m1 так,
// чтобы this указывал на o
o.m1.call( o );
}};
o2.m3(); // при вызове this будет указывать на o2
// а в объекте o2 нету метода m2
o2.m4();