用基本数据类型来描述一件事物,需要把每一个特性都当做单独的变量进行存储,这样的话,后面如果另外一件事物的特性和这一件一样了,就会把这一件的替换掉--->全局变量的冲突,后面的会把前面的覆盖掉
var name = "A小伙伴";
var age = 11;
var name = "B小伙伴";
var age = 15;
console.log(name);//-->"B"
出现了引用数据类型中的对象数据类型-->把描述同一件事物的所有属性都放在同一组下,而每一个对象都是一个单独的个体,即使两个对象的属性名一样也不会有任何的影响-->"单例模式"[其实就是一个普通的对象]
person1不仅仅叫做对象名,也叫作"命名空间",单例模式就是把描述同一件事物的属性放在了同一个命名空间下,起到了分组的作用,避免全局变量之间的相互冲突
var person1 = {
name: "A小伙伴",
age: 11
};
var person2 = {
name: "B小伙伴",
age: 15
};
console.log(person1.name);
console.log(person2.age)
用单例模式可以做什么?-->单例模式非常的重要,主要是应用单例模式可以构建最简易的模块化开发
"模块化开发":把一个复杂的页面进行团队协作开发的时候,按照相关的功能区域,划分成多个模块,每一个团队成员负责一到两个模块,各自开发,开发完成后在进行合并-->提高了开发的效率、我们可以把对应的模块写成功能组件(插件),哪个页面用直接的引入进来即可,不需要重新开发了...
例如:百度首页我们可以分为 天气、页卡、换肤、搜索、登录...模块
多个模块间会存在一些核心的、公共的方法
utils、tools...
var utils = {
getId: function () {
}
};
在每一个命名空间下,我们一般都会增加一个init方法,这个方法是我们当前模块的入口,在入口的这个方法中,我们进行参数的初始化、内部的方法的指定调用、相关逻辑之间的协调...,我们也把init称之为当前整个命名空间的大脑
var weatherModel = {
show: function () {
utils.getId();
},
setCity: function () {
},
init: function () {
//在这里调用同一个命名空间下的方法,不需要些具体的名字(防止名字修改后,我们还需要一个个的修改),我们统一用this来代替即可
//this-->weatherModel
//weatherModel.show();
//weatherModel.setCity();
this.show();
this.setCity();
}
};
weatherModel.init();
var cardModel = {
show: function () {
}
};