Nasıl ve neden 'mu'[''] toUpperCase() JavaScript iş? | Netgez.com
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

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • KIT KAT

    KIT KAT

    3 EKİM 2005
  • Kindness

    Kindness

    23 Ocak 2006