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