yeni nesneler oluşturmak için yaygın yollar şunlardır:
// Aşağıdaki seçeneklerin her biri boş bir nesne yaratacaktır:
var newObject = {}; // or
var newObject = Object.create(null); // or
var newObject = new Object();
Singleton Pattern
Java veya C # gibi diğer dillerde yerleşik ad alanları bulunurken, JavaScript bunları basit nesneler kullanarak taklit etmek zorundadır.
Şu senaryoyu inceleyin: Programınızda sıkça kullandığınız sayfada bir dizi işlevin asılı kalması.
function login() {
// do some login shtuffs
}
function logout() {
// do some logout shtuffs
}
function addToCart() {
// blah, blah blah...
}
Bir kaç şey burada devam ediyor ...
1. İşlevlerimiz küresel alanı kirletiyor. Sayfada dolaşırken bir şeyler eklemek zorunda kalacaklar. Açıkça beyan edilen ana nesne olmadan, küresel olarak mevcut olan
window
nesneye bağlanırlar.
2. Yanlışlıkla başka bir küresel
addToCart
işlev tanımlayacak olsaydık veya yazar aynı şeyi yapan bir kütüphaneyi getirseydik orijinalin üzerine yazar ve gerçekten de karmakarışık bir hata ayıklama durumuna gelebiliriz.
Bunu, kodumuzun yapabileceği bir tane (ve sadece bir tane) global nesne oluşturarak gözden geçirelim.
var NAMESPACE = {};
NAMESPACE.login = function() {
// do some login shtuffs
}
NAMESPACE.logout = function() {
// do some logout shtuffs
}
NAMESPACE.addToCart = function() {
// blah, blah blah...
}
Artık kimse, adı da olan bir nesne oluşturmadığı sürece
NAMESPACE
kodumuzun güvende olması gerekir. Buradan her türlü şeyi yapabiliriz. Nesne değişkenlerini daha yuvalayabiliriz veya yapıcı işlevler oluşturabiliriz:var NAMESPACE = {};
NAMESPACE.Widget = function(foo, bar) {
// Some awesome widget code
}
NAMESPACE.Widget.prototype.doSomethingAwesome = function() {
// do something awesome!!!
}
var myWidget = new NAMESPACE.Widget('hello', 'world');
Hiç yorum yok:
Yorum Gönder