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

  • ChrisCrossMedia

    ChrisCrossMe

    17 EYLÜL 2009
  • HER0R

    HER0R

    16 Aralık 2007
  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010