前面的的一篇“学习js先把内存管理想清楚”的文章提到,任何语言都是为了操作内存数据而定义自己规则的,那么我们就来分析一下js是如何来根据内存来定义规则的呢,我一向喜欢从最基础的概念去包装成自己的想法去理解它,我很喜欢拿“建房子理论”去理解我们的程序开发,先说我们建房子的事情,建房子,大家都清楚,首先呢,必须设计图纸(基本涵盖了房子的结构类型),然后呢就是准备最基础的原材料(那就是砖块,水泥,当然你可以分的再次,不过这里没必要),接下来就是请泥瓦工来开建了,如果房子足够大的话,为了考虑一个效率问题,开放商就会外包出去,比如房子的某某块分给某个公司来做,某某块又分给谁来做。那我们如何来把建房子理论引进到我们的js开发中来呢,让我们来一个一个的来分析。(注意下面的字母大小写,string和String内置构造函数的区别,这里不讲这个,只讲思想)
一、原材料
js为了让我们能系统完善的处理内存数据达到我们的系统功能(这里把它叫做我们要做的房子)给我们提供了哪些原材料呢,如果你学过js的话,你可能会立马想到原始数据类(undefine、null、boolen、number、string),为什么要这样说呢,首先当我们通过var关键字定义一个变量a时,对于js而言他就是在内存堆里开创了一块叫a的空间出来,至于这个空间是用来放什么,不是那么确定,初始确定那就要看我们放进去的数据(注意这里是数据,而不是说数据类型)是什么,可以放进去23、“23”、function(){}等等,就好像建房子同样叫砖,但有瓷砖,板砖的区别,瓷砖有瓷砖专有的用途,板砖有板砖的用途,那到底是哪种砖,放心js给了几种类型来区分,23是number类型(这种砖的用途、属性js有规定),“23”是string类型(这种砖的用途属性js 也规定过)...所以想想你就可以在js 的规则下有undefine、null、boolen、number、string这几种类型的砖原材料供你使用,那有了砖块,就要用到水泥把这些砖块粘和起来,水泥是什么呢,那就是函数function类型(我们叫它function牌水泥吧),好,现在有了原材料。
二、设计图纸
上一步是准备了原材料,可以开工了吗,如果你建个很小的房子比如二师兄的小窝那完全可以开工,但我们是有理想的人,要建就建大楼哇,那前提工作必须得做,也是程序开发最重要的工作(框架设计),也是我们房子理论里面的设计图纸,那js里面是拿什么来设计图纸的呢,原材料用完的那些类型,是不是还缺少一个类型没提呢,对的,那就是我们的object类型,比如开发商对设计公司说:“我要建个有商场、停车场、住宅区的大楼”;设计师开始画图:
1、初稿:
var fangzi={ market:marketObj,//这里设计商场 stopPark:stopParkObj,//这里设计停车场 home:homeObj//这里设计住宅 }
2、然后就开始具体设计:
商场应该要多大面积,有几楼等等;停车场多大面积,怎么设计;住宅区有几层,有哪几种户型等等
var marketObj={ floor:n, size:s, . . . } var stopParkObj={ floor:n, size:s, . . . } var homeObj={ type:{}, floor:n, . . . }
三、开建
设定了房子几个大类的规格和属性后,设计公司把图纸交给开发商,开发商开始联系建筑公司按照图纸开建,知道我们为什么叫IT民工吗,因为这里就是我们要做的,就是拿js提供的原材料的和上水泥,开始一个模块一个模块的建,这里就商场、停车场、和住宅区三个模块(后续我会和大家一起来分析原材料类型和水泥类型在js规则下的区别)。
评论加载中...
|
Copyright@ 2011-2017 版权所有:大连仟亿科技有限公司 辽ICP备11013762-1号 google网站地图 百度网站地图 网站地图
公司地址:大连市沙河口区中山路692号辰熙星海国际2215 客服电话:0411-39943997 QQ:2088827823 42286563
法律声明:未经许可,任何模仿本站模板、转载本站内容等行为者,本站保留追究其法律责任的权利! 隐私权政策声明