Defect: Defect is the problem or error found in the application while testing, which is unnecessary or which my hindrant to the other functions of the application.
Enhancement: Its the additional feature or functionality found and added to the application as desired by the end user/real word customer or tester during the testing process.
Enhacement is done to imrove the quality of the software where as Defect is removed or repair to maintain the quality of the software.
Enhancement can be applied when the application's basic fucntionality is proper. Where as, when the defect is found, the program can not be considered as proper and up to the mark untill its fixed.
Defect should me tracked using Bug tracing tool.But it is not in the case of Enhancement