Ravenous part 3 renderSortByOptions function

Can someone explain to me, why
a) we bind the onClick method handleSortByChange to this right here in the method and not in the constructor? Is that something you need to do, if you want to pass an additional element (sortByOptionValue)?
b) Doesn’t the method attached to onClick usually take events? So why do we pass an argument (sortByOptionValue) to it here instead?

renderSortByOptions() { return Object.keys(this.sortByOptions).map(sortByOption => { let sortByOptionValue = this.sortByOptions[sortByOption]; return <li key={sortByOptionValue} className={this.getSortByClass(sortByOptionValue)} onClick={this.handleSortByChange.bind(this, sortByOptionValue)}>{sortByOption}</li> }); }