SORU
4 Ocak 2011, Salı


Aramızdaki fark bu `yeni Nesne()` ve değişmez gösterim nesne?

Bir nesne oluşturmak için yapıcı tabanlı bu sözdizimi arasındaki fark nedir

person = new Object()

...ve bu değişmez sözdizimi:

person = {
    property1 : "Hello"
};

Hem JSLint değişmez gösterim nesne kullanın tercih rağmen aynı şeyi yapmak gibi görünüyor.

Hangisi daha iyi ve neden?

CEVAP
29 AĞUSTOS 2012, ÇARŞAMBA


Sizin örnekte olduğu gibi yöntemler olmadan basit bir nesne için bir fark yok. Ancak, nesneye yöntemleri eklemeye başladığınızda büyük bir fark var.

Edebi yol :

function Obj( prop ) { 
    return { 
        p : prop, 
        sayHello : function(){ alert(this.p); }, 
    }; 
} 

Yol prototip :

function Obj( prop ) { 
    this.p = prop; 
} 
Obj.prototype.sayHello = function(){alert(this.p);}; 

Bu kod ile, bu gibi N örneklerini oluşturabilirsiniz:

var foo = new Obj( "hello" ); 

Ancak, edebi şeklin bir kopyasını sayHello metodu içinde her örnek, nesneler, oysa yeni prototip yolu yöntemi tanımlanmış nesne prototip ve ortak arasındaki tüm nesne örnekleri. Eğer nesneler ve/veya yöntemleri bir sürü bir sürü varsa, edebi bellek israf oldukça büyük yol açabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • Richard Laxa

    Richard Laxa

    30 AĞUSTOS 2012