x['f'](e);
Ten zapis jest jak najbardziej poprawny w JavaScript. Jest to odnoszenie się do property obiektu (w tym przypadku funkcji) przez tzw. bracket notation. Zapis ten - w przeciwieństwie do odnoszenia się przez kropkę - pozwala dostać się do property poprzez zmienną, której wartość zostanie potraktowana jako klucz obiektu. Często stosuje się taki zapis np. w pętli for..in. Przykład:
var obj = {
key: 'value'
};
console.log( obj.key ); // 'value';
var keyVariable = 'key';
console.log( obj[ keyVariable ] ); // 'value'
Jednak w Twoim przypadku taki zapis jest niepotrzebny, wystarczy użyć kropki.