Answer:
There are so many factors involve in myoglobin affinity one of them is :
iron group in myoglobin has an oxidation state of 2+. When oxygen binds to the iron, it gets oxidized to an oxidation state of 3+.
This allows the oxygen that is binded to have a negative charge, which stabilizes it. That's why myoglobin's affinity for oxygen is higher than hemoglobin.