SORU
30 Aralık 2009, ÇARŞAMBA


Değerleri bir kurucu bu dönmemesi için dönüş ne yapabilirim?

Hangi Javascript return ifadesi bir kurucu new anahtar kelime kullanarak çağrıldığında bir değer this dışında dönebilirsiniz kesin şartlar nelerdir?

Örnek:

function Foo () {
  return something;
}

var foo = new Foo ();

Eğer yanlışım yoksa eğer something Eğer işlev olmayan bir ilkel, this iade edilecektir. Aksi takdirde something döndürülür. Bu doğru mu?

DÜŞÜK değerler something (new Foo () instanceof Foo) === false sebep ne olabilir?

CEVAP
30 Aralık 2009, ÇARŞAMBA


Kesin durumu new operatör tarafından kullanılan [[Construct]] iç özelliği, üzerinde açıklanmıştır:

ECMA-262 3. Ediion Özellikler:

13.2.2 [[Construct]]

14 ** Function bir nesne için [[Construct]] özellik çağrıldığında, aşağıdaki adımlar takip edilir:

  1. Yeni yerli ECMA bir nesne oluşturun.
  2. "Object" Result(1) [[Class]] özelliğini ayarlayın.
  3. F prototip özelliğin değerini almak.
  4. Eğer Result(3) bir nesne ise, Result(3) Result(1) [[Prototype]] özelliğini ayarlayın.
  5. Eğer Result(3) bir nesne değil, 15.2.3.1 açıklanan Object prototip özgün nesneye Result(1) [[Prototype]] özelliğini ayarlayın.
  6. F, this değeri Result(1) sağlayan ve bağımsız değerler olarak bağımsız [[Construct]] geçmiş listesi sağlanması [[Call]] özelliği çağırır.
  7. Eğer Type(Result(6)) Object Result(6) dönüş.
  8. Result(1) dönüş.

Ve 8, yeni nesne Result(6) (değer F kurucu işlevinden döndürülen bir türü ise iade edilecektir adımları 7 bakdeğilbir Nesne.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AginoEvolutionHD

    AginoEvoluti

    27 AĞUSTOS 2011
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010
  • PhoneArena

    PhoneArena

    7 NİSAN 2006