任何变量,函数,数组,对象,只要不在函数内部,都被认为是全局的,这就是说,这个页面上的其它脚本也可以访问它,而且可以覆盖重写它。 解决办法是,把你的变量放在一个匿名函数内部,定义完之后立即调用它。封装 var myApplication = function(){ var name = ‘Chris‘; var age = ‘34‘; var status = ‘single‘; return{ createMember:function(){ // [...] }, getMemberDetails:function(){ // [...] } } }(); //myApplication.createMember() 和 //myApplication.getMemberDetails() 就可以使用了。 这被称作 module 模式或 singleton。Douglas Crockford 多次谈到过这些,Yahoo User Interface Library YUI 里对此有大量的使用 var myApplication = function(){ var name = ‘Chris‘; var age = ‘34‘; var status = ‘single‘; function createMember(){ // [...] } function getMemberDetails(){ // [...] } return{ create:createMember, get:getMemberDetails } }(); //现在写成 myApplication.get()和 myApplication.create() 就行了。 把需要能被外界访问的元素的指针导出来,简化了外界调用的写法
时间: 2024-10-11 11:39:17