1
+ ( function ( ) {
2
+ Logger = {
3
+ log : function ( message ) {
4
+ console . log ( message ) ;
5
+ } ,
6
+ warn : function ( message ) {
7
+ console . warn ( message ) ;
8
+ } ,
9
+ error : function ( message ) {
10
+ console . error ( message ) ;
11
+ }
12
+ }
13
+
14
+ NewLogger = {
15
+ reportLog : function ( message ) {
16
+ console . log ( new Date ( ) + ': ' + message ) ;
17
+ } ,
18
+ reportWarn : function ( message ) {
19
+ console . warn ( new Date ( ) + ': ' + message ) ;
20
+ } ,
21
+ reportError : function ( message ) {
22
+ console . error ( new Date ( ) + ': ' + message ) ;
23
+ }
24
+ }
25
+
26
+ var logger = Logger ;
27
+ logger . log ( 'Programm gestartet' ) ;
28
+
29
+ // Funktioniert nicht
30
+ // logger = NewLogger;
31
+ // logger.log('Programm gestartet');
32
+
33
+ // Adapter
34
+ function LoggerAdapter ( logger ) {
35
+ return {
36
+ log : function ( message ) {
37
+ logger . reportLog ( message ) ;
38
+ } ,
39
+ warn : function ( message ) {
40
+ logger . reportWarn ( message ) ;
41
+ } ,
42
+ error : function ( message ) {
43
+ logger . reportError ( message ) ;
44
+ }
45
+ }
46
+ }
47
+ // Funktioniert über Adapter
48
+ logger = new LoggerAdapter ( NewLogger ) ;
49
+ logger . log ( 'Programm gestartet' ) ;
50
+
51
+ // First Class Functions
52
+ logger = Logger ;
53
+ Logger . log = function ( message ) {
54
+ NewLogger . reportLog ( message ) ;
55
+ }
56
+ Logger . warn = function ( message ) {
57
+ NewLogger . reportWarn ( message ) ;
58
+ }
59
+ Logger . error = function ( message ) {
60
+ NewLogger . reportError ( message ) ;
61
+ }
62
+ // Funktioniert wegen First Class Functions
63
+ logger . log ( 'Programm gestartet' ) ;
64
+ } ) ( ) ;
0 commit comments