首页 > 代码库 > javascript模块化开发初探
javascript模块化开发初探
//immediately-invoked fuction expression iife;(function(arg){ return something;})(arg);//第二种写法 !function(arg){}(arg);//第三种写法(function(arg){}(arg)); //eg 可访问ModuleProperty moduleMethod var Module = (function(){ var my = {}, privateVariable = 1; function privateMethod(){ } my.ModuleProperty = 1; my.moduleMethod = function(){ }; return my; }());//eg2 var Module = (function(){ var my = {}, privateVariable = 1; function privateMethod(){ } my = { ModuleProperty : 1; moduleMethod : function(){ } } return my; }()); //使用对象直接量来表达 var my = { ModuleProperty : 1; moduleMethod : function(){ } }; //返回一个函数 如jquery var Cat = (function(){ // 私有成员 return function(name){ this.name = name; this.bark = function(){}; } }()); var tomcat = new Cat("tom"); tomcat.bark();// var module =(function(){ var x = 1; function f1(){} function f2(){} return { publicmethod : f1, publicmethod : f2 } }()); //扩展 var Module = (function(my){ my.anothermothod = function(){ }; return my; }(Module)); //松耦合扩展 如果没有定义过Module 或者不在乎加载顺序的话 var Module = (function(my){ my.anothermothod = function(){ }; return my; }( Module || {} )); //紧耦合扩展 定义过,并且在以前的基础上扩展 覆盖已有方法 var Module = (function(my){ var oldmothod = my.modulemethod; my.modulemethod = function(){ //方法重载 }; return my; }( Module )); //克隆与继承 a var module_two = (function(old){ // var my = {}, key; for( key in old ){ if(old.hasOwnPropery(key)){ my[key] = old[key] } } var supermethod = old.modulemethod; my.modulemethod = function(){ //重写 //supermethod }; }(Module)); // b Create(old); var module_two = (function(old){ var my = Create(old); var supermethod = old.modulemethod; my.modulemethod = function(){ //重写 //supermethod }; }(Module));
javascript模块化开发初探
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。