В 1 случае используются стрелочные функции. Они не имеют своего this, наследуя родительский. Например:
// Пусть this - [object MyObject]
function log() {
console.log(this);
};
var obj = new MyObject2();
obj.on("ready", () => log()); // [object MyObject];
Во 2 случае просто передается функция, еще не вызванная. А когда она вызывается, используется другой this.
// Пусть this - [object MyObject]
function log() {
console.log(this);
};
var obj = new MyObject2();
obj.on("ready", log); // [object MyObject2];