David was born in Lancaster, England, the daughter of Davida Elizabeth (Nesbitt) and John Almond Hacking. Her first major television role was as Elinor Dashwood in the BBC's 1971 dramatisation of Sense and Sensibility followed a year later by War and Peace, in which she played Sonya. Joanna also featured in the TV series The Last of the Mohicans (BBC), in two episodes of Colditz, (Missing presumed Dead and Odd Man In, 1972) as Cathy Carter, the wife of Flt. Lt. Simon Carter (played by David McCallum). In 1975 she played Theo Dane in the BBC's television adaptation of Ballet Shoes by Noel Streatfeild (32 years later in 2007, David's daughter Emilia Fox would star in a new adaptation of the same book, alongside Emma Watson). In 1979, David played the heroine of Daphne du Maurier's Rebecca, opposite Jeremy Brett in the BBC miniseries of the same name. It was a role that would be played twenty years later by Emilia Fox, David's daughter by the actor Edward Fox, her long-standing partner and now husband. In 2005, she appeared in two episodes of Bleak House, playing Mrs Bayham Badger, alongside Gillian Anderson, Charles Dance, Alun Armstrong and Warren Clarke. Mr Bayham Badger was played by Richard Griffiths.