Aspektorientierte Programmierung Eine Abkürzung für Aspekt, eine Methode, mit der Sie verschiedene Teile eines Programms beschreiben können, die nicht gut getrennt werden können, indem Sie die allgemeine Verarbeitung als Aspekt extrahieren. Bildquelle: Spring AOP Tutorial - AOP für Anfänger mit Beispielen
Es gibt verschiedene Methoden, aber dieses Mal werde ich Function.prototype als Beispiel vorstellen.
//Vor Funktion definieren
Function.prototype.before = function( functionBefore ) {
var _this = this;
//Geben Sie die ursprüngliche Funktion bzw. functionBefore zurück
return function() {
functionBefore.apply(this, arguments);
return _this.apply(this, arguments);
}
};
//Definieren Sie die After-Funktion
Function.prototype.after = function( functionAfter ) {
var _this = this;
return function() {
var result = _this.apply(this, arguments);
functionAfter.apply(this, arguments);
return result;
}
};
//Bereiten Sie eine Testfunktion vor
var fn = function() {
console.log('fn is running');
};
// before()Und danach()Zum "Hinzufügen" zur Testfunktion
fn = fn.before(function(){
console.log('start!');
}).after(function(){
console.log('end!');
});
fn();
Das Ergebnis ist:
Es stellt sich heraus, dass "Start!", "Fn läuft" und "Ende!" Nacheinander angezeigt werden.
Gemeinsamer Mechanismus wie.