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

  • graham025

    graham025

    25 NİSAN 2006
  • Drakinen

    Drakinen

    1 EYLÜL 2008
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006