JavaScript Funktionen klonen & manipulieren

In Java Script ist es möglich Funktionen in eine Variable zu speichern und die Originale Funktion zu überschreiben. Dies ermöglicht es z.B. bei einem Videoplayer den Playbutton zu tracken. Es soll mit Optimizley (ein A/B Testing Werkzeug) eine Videoseite optimiert werden und eins der Ziele ist das Abspielen vom Video, kann einfach die Funktion des Video abspielen überschrieben werden.

Video Funktion klonen und manipulieren

Code

function playVideo(){
  // do some Stuff
  console.log("playing video " + arguments[0].video + " @time " + arguments[0].time);
}
playVideo({video: "Hello World", time: 1});

var playVideoClone = playVideo;

playVideo = function() {
  arguments[0].time = arguments[0].time + 1;
  playVideoClone(arguments[0]);
}

playVideo({video: "Hello World", time: 1});

Ergebnis

playing video Hello World @time 1
playing video Hello World @time 2

wallpaper-1019588
[Comic] Seven Sons
wallpaper-1019588
Momentary Lily: Original-Anime angekündigt
wallpaper-1019588
LUCK LIFE: Band feiert Europapremiere auf der Connichi
wallpaper-1019588
Wind Breaker: Deutscher Simuldub bei Crunchyroll gestartet