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

  • Charles Nesson

    Charles Ness

    27 NİSAN 2006
  • colacas

    colacas

    29 EKİM 2006
  • The Dubstep FX

    The Dubstep

    5 Mart 2011