SORU
24 ŞUBAT 2012, Cuma


Neden değil't bu başka bir şey atarken başvurusu tarafından geçirilen nesne?

JS, nesneler, örneğin: başvuru tarafından geçirilen biliyorum

function test(obj) {
    obj.name = 'new name';
}

var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // new name

Ama neden işin altında değil:

function test(obj) {
    obj = {};
}

var my_obj = { name: 'foo' };
test(my_obj);
alert(my_obj.name); // foo

{} (boş) nesne ayarları yaptım ama hala foo diyor.

Herhangi biri bunun mantığını açıklayabilir mi?

CEVAP
24 ŞUBAT 2012, Cuma


Eğer işaretçiler hakkında bilginiz varsa, o bir benzetme. Aslında bir işaretçi geçirmeden, obj.someProperty Bu özellik için başvuru ve obj işaretçiyi öldürmek ve nesne üzerine değil ki sadece öncelikli olsa da aslında bu geçersiz olur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jonah Penna

    Jonah Penna

    11 EYLÜL 2005
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • RaverX DouBle StAg XI

    RaverX DouBl

    23 Mayıs 2008