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

  • Amena

    Amena

    15 Kasım 2006
  • Jonathan Leack

    Jonathan Lea

    26 ŞUBAT 2007
  • Ryan Ha

    Ryan Ha

    9 NİSAN 2006