首页 > 代码库 > (2) Module (模块)模式
(2) Module (模块)模式
module模式,是建立在对象字面量上面的,最基本的对象字面量的形式是:
var Car = {};
基于对象字面量的module模式的实现方式:
var Car = { color: ‘white‘, getCarPrice: function () { }, getCarColor: function () { console.log(this.color); } }; Car.getCarColor();
再做深入的理解,在module模式上实现private和public的方法和变量的方式。
var testModule = function(){ var privateValue = http://www.mamicode.com/1; var publicValue = http://www.mamicode.com/2; var privateMethod = function(){}; var publicMethod = function(){ console.log(privateValue); }; var service = { publicMethod:publicMethod, publicValue:publicValue }; return service; }; testModule().publicMethod();//1 testModule().privateMethod();//undefined is not a function testModule().privateValue;//no error , just console nothing
继续修改一下
var testModule = (function(){ var privateValue = http://www.mamicode.com/1; var publicValue = http://www.mamicode.com/2; var privateMethod = function(){}; var publicMethod = function(){ console.log(publicValue); }; var service = { publicMethod:publicMethod, publicValue:publicValue }; return service; })(); testModule.publicMethod();//2 testModule.publicValue = http://www.mamicode.com/3; testModule.publicMethod();//2 无法修改,
如果想要修改内部变量,只能通过提供外部方法去修改
var testModule = (function(){ var privateValue = http://www.mamicode.com/1; var publicValue = http://www.mamicode.com/2; var privateMethod = function(){}; var publicMethod = function(){ console.log(publicValue); }; var setPublicValue = http://www.mamicode.com/function(value){ publicValue = value; }; var service = { publicMethod:publicMethod, publicValue:publicValue, setPublicValue:setPublicValue }; return service; })(); testModule.publicMethod();//2 testModule.setPublicValue(4); testModule.publicMethod();//4
(2) Module (模块)模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。