1:理论
Module -- 模块,模块化开发。把业务需求分模块。
每一个模块负责一个功能的实现。
2:概念
匿名函数 声明并执行
(function(){ //code })();
有名字的函数 声明并执行
var func = function(){ //code } func();
3:插件写法
3.1:面向对象思想类方式(new):对象名.方法
//自定义类
function plugin(){}
//提供默认参数
plugin.prototype.str = "default param";
//提供方法(如果不传参,则使用默认参数)
plugin.prototype.firstFunc = function(str = this.str){
alert(str);
}
//创建"对象"
var p = new plugin();
//调用方法
p.firstFunc("Hello ! I am firstFunc");//Hello ! I am firstFunc
p.firstFunc();//default param
3.2:闭包方式 插件名.方法名字
匿名函数方式实现
var plugin =(function(){
function _firstFunc(str){
alert(str);
};
return{
firstFunc: _firstFunc,
};
})();
3.3:闭包方式升级
(function(){
//定义一些默认参数
var _options={
default_word:"default hello"
}
//定义一些api
var _plugin_api = {
firstFunc:function(str = _options.default_word){
alert(str);
return this;//返回当前方法
},
secondFunc:function(){
alert("secondFunc");
return this;//返回当前方法
}
}
//这里确定了插件的名称
this.CJPlugin = _plugin_api;
})();
CJPlugin.firstFunc("hello");//hello
CJPlugin.firstFunc();//default hello
CJPlugin.secondFunc();//secondFunc
4:闭包写法
;(function(global,undefined){
"use strict" //使用js严格模式检查,使语法更规
var goodsSku = window['goodsSku'] = {} ;
})();