Я хотел бы переопределить прототип, но при этом использовать оригинальную функцию прототипа. Цель состоит в том, чтобы добавить отладочный код тестового стенда в существующее определение прототипа производства.прототип javascript redefine с использованием существующего прототипа
// production definition
function tester(n) { this.name = n ; }
tester.prototype.getName = function() { return this.name; }
// debug override
if (typeof tester.prototype.getName === 'function') {
var f = tester.prototype.getName;
tester.prototype.getName = function() {
return f() + " (plus some more)";
};
}
// test
var tt = new tester('testing');
console.log(tt.getName()); // logs ' (plus some more)' but I want 'testing (plus some more)'
Естественно, мои производственные прототипы являются гораздо более сложным, и я предпочел бы не встроить мои тестовую скамейку код в коде продукции.
Большое спасибо заранее! - Джон :)
Я бы посмотрел на функциональный инструмент, который предлагает возможность _compose_, я думаю, что у lodash есть один. Таким образом, вы можете смешивать и сопоставлять расширенные возможности без ручного кодирования каждого перехвата. – dandavis