命名空间
var MYNAMESPACE = MYNAMESPACE || {};
//构造函数
MYNAMESPACE.Child = function () {}
// 变量
MYNAMESPACE.mystr= '6-ara forerer'
MYNAMESPACE.Person = function(name) {
this.name = name;
};
//原型
MYNAMESPACE.Person.prototype.getName = function() {
return this.name;
};
// 使用方法
var p = new MYNAMESPACE.Person("Bob");
p.getName(); // bob
。
命名空间函数实例
//命名空间实现函数示例
var MYAPP = MYAPP || {}
MYAPP.namespace = function (ns_string){
var parts = ns_string.spilt('.'),
parent = MYAPP,
i;
//剥离前面的冗余变量
if(parts[0]==='MYAPP'){
parts=parts.slice(1)
}
for (i=0;i<parts.length;i+=1) {
//如果它不存在,就创建一个属性
if(typeof parent[parts[i]]==="undefined"){
parent[[parts[i]]={};
}
parent= parent[parts[i]]
}
return parent
}
//使用
//将返回值赋给局部变量
var mymodule = MYAPP.namespace('MYAPP.module.mymodule');
mymodule === MYAPP.module.mymodule //true
//忽略空间MYAPP
MYAPP.namespace('module.youmodule')
私有属性和方法
JS中没有特殊语法来表示私有或公共属性的语法,但我们可以用闭包来实现此功能
//构造函数获得私有性
function Gadget() {
//私有成员
var name = 'Bob'
//公有函数
this.getName= function(){
return name
}
}
var toy = new Gadget()
console.log(toy.name) //输出undefined
console.log(toy.getName()) //输出Bob
//对象字面量获得私有性
var myobj = (function () {
//私有成员
var name = 'Bob'
//实现公有部分
return {
getName: function () {
return name;
}
}
}())
myobj.getName() //输出Bob
原型私有性
function Gadget() {
//私有成员
var name = 'Bob'
//公有函数
this.getName= function(){
return name
}
}
Gadget.prototype = (function(){
//私有成员
var color= black
return {
getColor: function (){
return color
}
}
})
模块模式
//1、建立一个命名空间
MYAPP.namespace('MYAPP.myarray.userarray')
//2、定义该模块,即时函数返回具有接口的模块
MYAPP.myarray.userarray = (function () {
return {
//do somting
}
}())
//3、向公共接口提交一些方法
MYAPP.myarray.userarray = (function () {
return {
getName: function (name){
//
}
}
}())
//揭示模块模式,只暴露最后设立的API方法
MYAPP.namespace('MYAPP.myarray.userarray')
MYAPP.myarray.userarray = (function () {
//私有属性...
var a =1;
//私有方法
var getName = function (name){
console.log(name)
}
return {
getName:getName
}
}())
将全局变量导入到模块中
MYAPP.myarray.userarray = (function (app,glbal) {
//引用全局对象
//以及现在被转换为局部变量的命名空间对象
}(MYAPP, this))
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。