SORU
6 EKİM 2012, CUMARTESİ


'' TypeScript için bir takma ad var mı?

Bir olay işleyicisi olarak hareket eden bir yöntem tanımlanmış bir WordPress kullanmak bir olay için bir geri arama var TypeScript bir sınıf yazmak için çalıştık.

class Editor {
    textarea: JQuery;

    constructor(public id: string) {
        this.textarea = $(id);
        this.textarea.focusin(onFocusIn);
    }

    onFocusIn(e: JQueryEventObject) {
        var height = this.textarea.css('height'); // <-- This is not good.
    }
}

OnFocusİn olay işleyicisi içinde, TypeScript 'bu' gibi olmak 'bu' sınıfın dışında. Ancak, DV bu başvuru geçersiz kılar ve DOM nesnesi olayı ile ilişkili olarak ayarlar.

Bir alternatif bu durumda TypeScript gizli _this bir diğer adı ile kapanması bir tür oluşturur olay işleyicisi, yapıcı içinde bir lambda tanımlamaktır.

class Editor {
    textarea: JQuery;

    constructor(public id: string) {
        this.textarea = $(id);
        this.textarea.focusin((e) => {
            var height = this.textarea.css('height'); // <-- This is good.
        });
    }
}

Benim sorum, TypeScript kullanarak, bu bir WordPress kullanmak davranış üstesinden gelmek için bir yöntem tabanlı bir olay işleyicisi içinde bu referans erişim için başka bir yol var mı?

CEVAP
6 EKİM 2012, CUMARTESİ


this kapsamı ok işlev sözdizimi () => { ... } - burada kullanarak bir örnek TypeScript For JavaScript Programmers alınan korunur.

var ScopeExample = { 
  text: "Text from outer function", 
  run: function() { 
    setTimeout( () => { 
      alert(this.text); 
    }, 1000); 
  } 
};

this.text ok işlev sözdizimi korur çünkü Text from outer function veren "sözlü kapsam".

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • the one am radio

    the one am r

    6 Mayıs 2006
  • WOSU Public Media

    WOSU Public

    23 AĞUSTOS 2007