Global Scope Pollution (Global İsimalanı Kirliliği)

Grlobal Scope Pollution dediğimiz olay genellikle takım ile yapılan büyük projelerde karşımıza çıkmaktadır. Global Scope dediğimiz şey window nesnesidir. Javascript method overloadingi desteklemez Buda demek olur ki aynı isimde iki farklı metod olamaz. Eğer böyle birşey varsa window ikinci olarak yüklenen nesneyi birincinin üstüne yazar. Birinci nesnenin fonksiyonuna erişemeyiz. Bunun için global değişkenleri ve fonksiyonları olabildiği kadar az tanımlamamız gerekir.

Aşağıdaki scriptte iki adet Ogrenci Nesnesi var ve bu iki nesnede farklı sayıda parametre kabul etmekteler. Browser her zaman ikinci yüklenen metodu ve nesneyi tanıyacaktır.

<script>
        function Ogrenci(ad, soyad, numara) {
            this.ad = ad;
            this.soyad = soyad;
            this.numara = numara;
            this.yazdir = function () {
                return this.ad + " " + this.soyad + " " + this.numara;
            }
        }

        function Ogrenci(ad, soyad) {
            this.ad = ad;
            this.soyad = soyad;
            this.yazdir = function () {
                return this.ad + " " + this.soyad;
            }
        }

        $(document).ready(function () {
            alert(new Ogrenci("karayel", "tasarim").yazdir());
        });

    </script>

Nesneler yerdeğiştiğinde undefined hatası alınacaktır.

Ömer Faruk Dinçer

Yorum Yaz

Yorumlarınız denetimden geçtikten sonra yayınlanmaktadır...