Gdzie jest moje „to”? Używanie metody obiektów jako funkcji zwrotnej

Mam ogólne pytanie dotyczące specyfikacji javascript lub implementacji wskaźnika funkcji (delegatów?), Które są punktami do metod obiektowych.

Przeczytaj poniższy fragment kodu. Tutaj mamy obiekt z metodą „this”, aby uzyskać dostęp do pola obiektu. Kiedy nazywamy tę metodę jak zwykle (o.method();), zwraca wartość określonego pola obiektu. Ale kiedy tworzymy wskaźnik do tej metody (wywołanie zwrotne) i wywołujemy ją, zwraca wartość niezdefiniowaną, ponieważ „this” wewnątrz zakresu metody jest teraz obiektem globalnym.

var o = {
    field : 'value', 
    method : function() {
        return this.field;
    }
};

o.method(); // returns 'value'

var callback = o.method;

callback(); // returns 'undefined' cause 'this' is global object

Więc gdzie jest moje „to”?