2016-03-27 2 views
2

Учитывая следующий фрагмент кода Машинопись:Как получить доступ к jQuery .each «this» в TypeScript?

export class MyClass { 
    myMethod() { 
     // ... 
     $myQuery.each(function(idx, elm) { 
      $(this)... // Original javascript code which obviously not correct in typescript 
     } 
    } 
} 

Однако в машинописном это метод класса «это» всегда относится к экземпляру класса. Я хотел бы получить доступ к тому же самому объекту, что бы он был в чистом javascript.

В общем: Каков способ доступа к исходному контексту javascript (this) в обратном вызове при использовании TypeScript?

+0

Если я правильно понимаю, вы хотите получить вяз вместо этого? –

+1

* «Однако в TypeScript это в методе класса« this »всегда относится к экземпляру класса.» * Вы уверены? Это похоже на большое отклонение от JavaScript. OTOH, я не знаю, что делать с машинописью. –

+0

@FelixKling Да, я уверен. Положительно. –

ответ

2

Это неточно.

При использовании this в выражении лямбда или в методе класса он относится к самому классу. Примеры:

class A{ 
    public a:number; 
    public foo(){ 
    this.a = 1;//this here is A 
    var lambda =() => { this.a = 2; } //this here is A 
    var fn = function() { this.a = 3; } // this here is not the A 
    } 
} 

Вы можете посмотреть на transpiled код здесь: Typescript Playground

Смежные вопросы