This is probably the most common way to handle jump tables on the 6502. If you're writing ROMable code you'll have to use indirect jmp (vector) instead of selfmod. It's more efficient to split the jump table into two halves though, with the LSB in one table and the MSB in another, and access it like so:
lda param_lo,y
sta vector
lda param_hi,y
sta vector+1
vector = * + 1
jmp $5e1f ; dummy address, written with selfmod