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

  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • RiverCityGraphix

    RiverCityGra

    6 Ocak 2012
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006