Demo


$(()=>{
	let ahiru = new Ahiru();
	let torikago = new Torikago();
	
	var func1 = ahiru.bark.bind(ahiru); // ← コールバックにする関数にAhiruのオブジェクトを引数として渡す
	torikago.setCallback(func1);
	
	// テスト実行
	torikago.move();
	
});


class Ahiru{
	bark(){
		this.barkDetail(); // thisはbindで渡されたAhiruオブジェクトを指している。
	}
	
	barkDetail(){
		$('#res').html("ガーガー");
	}
}

class Torikago{
	
	setCallback(callback){
		this.callback = callback;
	}
	
	move(){
		this.callback();
	}
}

出力