Показать сообщение отдельно
  #1 (permalink)  
Старый 25.02.2010, 16:42
Новичок на форуме
Отправить личное сообщение для Григорий J Посмотреть профиль Найти все сообщения от Григорий J
 
Регистрация: 25.02.2010
Сообщений: 3

Замена конструктора класса
Ребята, подскажите, пожалуйста, если кто с этим сталкивался.
Как изменить конструктор класса? - есть готовый класс A (в его код лезть нельзя)
его реализация следующая:
function A(name) { this.name=name; this.getName() }
A.prototype.getName = function(){ alert(this.name)}

всё просто.

есть еще функция B = function() { alert('foo');}

как правильно реализовать подмену, чтобы была следующая логика?
(function(){

var old_construct = A.prototype.constructor ;

A.prototype.constructor = function() { 
B(); //выполненеие моего кода
old_construct.apply(this,arguments); // исполнение оригинального конструктора
}

})()

то есть, чтобы после вызова
var v1 = new A('test');
сначала произошел alert('foo'), a потом alert('test');

Последний раз редактировалось Григорий J, 25.02.2010 в 16:44.
Ответить с цитированием