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

  • Rockstar Games

    Rockstar Gam

    17 ŞUBAT 2006
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006
  • Vicious Computers

    Vicious Comp

    14 EKİM 2006