最近因为多写了点js,感觉就会function,很多时候重名问题会污染变量,导致的问题找也找不到原因,所以花点时间总结下javascript模块化编写方法:
1:一般简单的用
function login(){ } function logout(){ } function ajax(){ }
引用js,调用login(),loguo()就可以了,但是如果有其他的login()函数 就会出现问题,所以此方法不适合写公用的js库
2:对象方式
var oauth = { login:function(username, pwd){ if(username && pwd){ console.log(pwd); return true; } }, logout:function(){ console.log('logout'); } }; console.log(oauth.login("ljq", "123456")); oauth.logout();
缺点会暴露变量,所有可以被外部修改
3:立即执行函数
var jQuery = jQuery || {} ; var oauth2 = (function($){ // 自执行后返回对象 传入jquery对象 var login = function(username, pwd){ if(username && pwd){ console.log(pwd); return true; } }; var logout = function(){ console.log('oauth2 logout'); }; return { login : login, logout : logout }; }(jQuery)); console.log(oauth2.login('ljq', '123456798..')); oauth2.logout();
最好还是用立即执行函数后返回一个对象;