基于ES5并fix all undefined bug