SORU
17 EYLÜL 2008, ÇARŞAMBA


Nasıl bir JavaScript nesnesinin özelliklerini sıralamak mı?

Nasıl bir JavaScript nesnesinin özelliklerini sıralamak mı?

Aslında tanımlı değişkenleri ve değerlerini tüm listesi için istiyorum, ama bir değişken tanımlama aslında pencere nesnesinin bir özelliğini oluşturur öğrendim.

CEVAP
17 EYLÜL 2008, ÇARŞAMBA


Yeterince basit:

for(var propertyName in myObject) {
   // propertyName is what you want
   // you can get the value like this: myObject[propertyName]
}

Şimdi, mevcut olmadığı için özel değişkenler bu şekilde alamazsınız.


EDİT: @bitwiseplatypus doğru olduğu sürece kullandığınız hasOwnProperty() yöntem, sen-ecek almak özelliklerini miras - ancak, neden bilmiyorum herkes aşina Nesneye Yönelik Programlama beklediğiniz şey daha az! Genellikle, bu getiren biri hala beni biraz kafalarını karıştıran bu konuda Douglas Crockford uyarılara maruz kaldı. Yine, miras OO dilleri normal bir parçasıdır ve bu nedenle JavaScript parçasıdır, buna rağmen prototip.

Şimdi, " dedi hasOwnProperty()filtreleme için yararlı, ama eğer kalıtsal özellikleri almak tehlikeli bir şey varsa bir uyarı sesi gerek yok.

EDİT 2: @bitwiseplatypus getirir durum bu gerçekleşirse birini eklemek özellikleri/yöntemleri için nesneleri bir nokta saati daha sonra zaman ilk yazan nesneler () prototipi) - doğru olan bu olabilir beklenmeyen bir davranış, ben şahsen görmüyorum olarak benim sorunum tamamen. Görüş meselesi sadece. Ayrıca, benim nesneler inşaatı sırasında prototip kullanıyorum ve nesnenin özelliklerini üzerinde dolaşır bir kod var ve henüz tüm kalıtsal özellikleri istediğim şekilde işler plan ne? hasOwnProperty() kullanmazdım. Sonra, diyelim ki, birisi daha sonra yeni özellikler ekliyor. İşler kötü bu noktada yardımcı olursanız benim hatam mı? Ben öyle düşünmüyorum. Bu sayfa ekleme bir örnek olarak, nasıl çalıştığını uzanan belirtilen yolu (jQuery.extend jQuery.fn.extend) neden olduğunu düşünüyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010