How Javascript Handle Asynchronous Definition