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.