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

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • CNET

    CNET

    5 Mayıs 2006
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005