三种javascript模拟实现封装的方式及写法区别分享