在没用对象数据类型的情况下,如果要定义两个不同的人的属性,需要这样:
var name = 'zhangsan';
var age = 18;
var name = 'lisi';
var age = 48;
console.log(name); // -> lisi
很显然,第二个name和age将第一个name和age给覆盖了。所以引出了对象数据类型。
对象数据类型的作用:
把描述同一个事物或对象的属性和方法放在一个内存空间下,起到了分组的作用,这样不同事物之间的属性即使属性名一样,相互也不会发生冲突。
把这种分组编写代码的模式叫做"单例模式"。
在单例模式中,把person1
或者person2
也叫做"命名空间"。
var person1 = {
name: 'zhangsan',
age: 18
}
var person2 = {
name: 'lisi',
age: 48
}
单例模式是一种项目开发中经常使用的模式,因为项目中可以使用单例模式来进行"模块化开发"。
"模块化开发": 对于一个 相对来说比较大的项目,需要多人协作开发的,我们一般情况下回根据当前的项目需求划分成几个功能板块,每个人负责一部分,同时开发,最后把每个人的代码进行合并。
// 公共模块
var utils = {
select: function () {
}
};
// 页卡模块中的change -> 实现选项卡切换
var tabRender = {
change: function () {
utils.select(); // 在自己的命名空间下调用其他命名空间的方法
}
};
// 搜索模块的change -> 搜索内容变化处理的
var searchRender = {
change: function () {
this.clickEvent(); // 在自己的命名空间下调用自己命名空间的方法
},
clickEvent: function () {
}
};