SORU
27 Mart 2013, ÇARŞAMBA


Nasıl ve neden 'mu'[''] toUpperCase() JavaScript iş?

JavaScript beni şaşırtmaya ve bunun başka bir örneği duruyor. Ben ilk başta anlayamadım etmeyen bazı kod rastladım. Bu bulmak için geldim debug:

alert('a'['toUpperCase']());  //alerts 'A'

Şimdi bu toUpperCase() string türü bir üyesi olarak tanımlanmış ise açık olmalı, ama bana mantıklı başlangıçta yapmadı.

Her neyse

  • bu toUpperCase üyesi olduğu için işten 'bir'? Ya da başka bir şey perde arkasında neler var?
  • okuyordum code aşağıdaki gibi bir işlevi vardır

    function callMethod(method) {
        return function (obj) {
            return obj[method](); //**how can I be sure method will always be a member of obj**
        }
    }
    
    var caps2 = map(['a', 'b', 'c'], callMethod('toUpperCase')); // ['A','B','C'] 
    // ignoring details of map() function which essentially calls methods on every 
    // element of the array and forms another array of result and returns it
    

    Aramak için biraz genel bir fonksiyondurHERHANGİ biryöntemleri üzerindeHERHANGİ birnesne. Ama belirtilen yöntem zaten belirtilen nesne örtülü bir üyesi olacak anlamına mı geliyor?

JavaScript fonksiyonları temel kavram ciddi bir anlayış kaçırıyorum eminim. Lütfen bana bu anlamaya yardımcı olur.

CEVAP
27 Mart 2013, ÇARŞAMBA


Bunu yıkmak.

  • .toUpperCase() String.prototype bir yöntemdir
  • 'a' temel bir değer olduğunu, ama kendi haline dönüştürüldüTemsil nesnesi
  • Nesne özellikleri/yöntemleri, nokta ve parantez gösterimde erişmek için iki olası gösterimler var

Bu yüzden

'a'['toUpperCase'];

erişim yoluylaköşeli parantez açıklamasımülkiyet üzerinde 12**, String.prototype. Bu özellik başvuru bir bu yanayöntem, () takarak çağırmak edebiliriz

'a'['toUpperCase']();

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Central

    Android Cent

    13 Kasım 2008
  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • fufko

    fufko

    27 ŞUBAT 2006