{Kurung Kurawal}

Objek window di Javascript

Di Javascript, seluruh variable, function, dan object apapun, adalah merujuk ke satu obyek utama, yaitu window. Mari saya perkenalkan.

Obyek window adalah obyek global, yang merupakan obyek tampilan halaman situs yang sedang ditampilkan. Perhatikan script berikut ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// ketika suatu variable didefinisikan secara langsung
// akan membuat variable tersebut otomatis menjadi property dari object window
s = 'hello';
 
// sama juga ketika mendaftarkan sebuah property pada object window
window['t'] = 'world';
 
function say1() {
    // s dan t akan diambil dari window
  // karena tidak didefinisikan dalam function
  return 'fn say1 = ' + s + ' ' + t;
}
 
function say2() {
    var t = 'universe';
  // meskipun dalam function ini ada mendifinisikan variable t,
  // namun variable tersebut didefinisikan dengan keyword var
  // menjadikan akses ke variable tersebut hanya dalam scope function
  // sedangkan dalam kasus ini, secara eksplisit, kita mengambil nilai t dari object window
  return 'fn say2 = ' + window.s + ' ' + window.t;
}
 
// deklarasi say3 adalah dianggap sebagai variable
// tanpa keyword var, maka akan otomatis menjadi property dari window
say3 = function(t){
    // pada fungsi ini, variable t tidak akan diambil dari object window, 
  // karena scope function, juga memiliki properti t
  // bandingkan dengan say2 di atas
    return 'fn say3: hello ' + t;
}
 
function say4(){
    // di javascript, function pun adalah sebuah properti object
  // dalam kasus ini, say3 adalah sebuah variable, dengan tipe ada function
  // sehingga dapat diakses langsung pada object window, dan dieksekusi
    return 'say 4: ' + window['say3']('Toni')
}
 
// variable custom1 dideklarasikan secara langsung menjadi properti dari window
window.custom1 = 'rajin';
 
function getCustom1(){
    // variable custom1 otomatis diambil dari object window
  // karena tidak ada variable custom1 dalam scope ini
    return 'sifat budi: ' + custom1
}
 
function getCustom2(){
    var custom1 = 'budi';
  // karena variable custom1 dideklarasikan dalam scope function ini,
  // maka untuk mengakses custom1 milik window, harus ditulis secara lengkap
  return custom1 + ' ' + window.custom1
}
 
// variable ini didefinisikan dengan keyword var
// menjadikan variable ini hanya berjalan scope saat ini, dan bukan global
// dengan demikian, variable itu tidak menjadi property dari object window
// say5 akan menghasilkan undefined, karena tidak dapat mengakses variable notInWindow
var notInWindow = 'variable bukan dalam window';
function say5(){
    return window.notInWindow;
}

Demikian penjelasan scope variable sebagai properti window. Tentu saja, sebagai obyek tertinggi dalam javascript, window juga memiliki banyak property bawaan dalam javascript. Cek disini.

Berikut implementasi script di atas.

Setelah membaca artikel ini, diharapkan Anda lebih paham mengenai scope variable dalam javascript, terutama berkaitan dengan obyek window. Semoga artikel ini berguna untuk kita semua.