单例(单独的实例,均是Object的实例,但互不干扰) //这是一个人的一些基本特征 var name = "hh”; var age = 3; var sex = "man" //==>将描述同一事物的属性或者特征进行分组归类,(存储在同一空间下)避免了全局变量之间的冲突*/ var obj = { name:'hh', age:3, sex:'man' } /* 单例模式中,obj不仅仅是对象名,它也被称为“命名空间”,多个命名空间都是独立分开,无联系。 */ /*高级单例模式:不直接赋给一个对象,不执行匿名函数,创建一个私有作用域(不销毁的栈内存)AA,在AA中创建一个堆内存,将地址赋给命名空间. 好处:我们可以在AA中创建很多内容(供外部使用),我们暴露到返回的对象中。(需要谁暴露谁,模块化的一种思想) */ /* var nameSpace = (function(){ var n = 12; function fn(){
//、、、
} return {fn:fn}//创建了一个堆,并将堆的地址赋给命名空间(nameSpace) })() */