@zpao feedback, using hasOwnProperty