The 18-year-old playmaker was unveiled by the Eredivisie club at a press conference on Tuesday morning having secured an 18-month temporary stay.
The Norway international arrived at the Bernabeu from Stromsgodset in his homeland in 2015 with a reputation as a wonderkid and, aged 16 years and 157 days, became the youngest player to represent Madrid.
But Odegaard has struggled to make an impression in Spain, making only one first-team appearance this term in the Copa del Rey, and has made the move to Holland in order to secure regular first-team football.
Odegaard said in a press conference streamed on Heerenveen's official YouTube channel: "This is the best decision for my development.
"I'm very happy and it is a good chance for me to show my qualities.
"It seems like a very good club. We had some good talks. I am looking forward to it, very excited.
"They told me a lot about the club, what they expected of me. I want to develop and that is the reason I am here.
"Madrid is a very good club. I had a good time there training in the best team of the world, but it is difficult because there are many great players there."