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

  • Megan Parken

    Megan Parken

    19 Temmuz 2009
  • Study with Substance P

    Study with S

    31 Mayıs 2008
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009