are there abstract classes in javascript