研磨JavaScript系列(二):没有类
来源:互联网 发布:淘宝客服工作流程表 编辑:程序博客网 时间:2024/05/18 22:47
object就是对象的类型。在JavaScript中不管多么复杂的数据和代码。都可以组织成object形式的对象。
但JavaScript没有"类"概念。
看下面这段JavaScript代码:
1 <script type="text/javascript"> 2 var life = {}; //光溜溜的生命对象 3 4 for(life.age = 1; life.age <= 3; life.age++){ 5 switch(life.age){ 6 case 1: 7 life.body = "卵细胞"; //增加body属性 8 life.say = function(){alert(life.age + life.body);} //新建say()方法 9 break;10 case 2:11 life.tail = "尾巴"; //增加tail属性12 life.gill = "腮"; //增加gill属性13 life.body = "蝌蚪"; 14 life.say = function(){alert(life.age + life.tail + life.gill + life.body);}15 break;16 case 3:17 delete life.tail; //删除tail属性18 delete life.gill; //删除gill属性19 life.leg = "四肢"; //增加leg属性20 life.lung = "肺"; //增加lung属性21 life.body = "青蛙";22 life.say = function(){alert(life.age + life.leg + life.lung + lifed.body);}23 break;24 }25 life.say(); //调用say()方法,此方法逻辑每次都会动态改变26 }27 </script>
这一段JavaScript程序一开始产生了一个生命对象life,life诞生时只有一个光溜溜的对象,没有任何属性和方法。
在第一次生命过程中,他有了一个身体属性body,并有了一个say()方法,看起来是一个卵细胞。
在第二次生命过程中,他又长出了尾巴和腮,有了tail和gill属性,显示他是一个蝌蚪。
在第三次生命过程中,它的tail和gill属性消失了,但又长出了四肢和肺,有了leg和lung属性,从而最终成为了青蛙。
还记得儿时,那个小蝌蚪找妈妈的童话故事吗?可爱的小蝌蚪也就是在其自身类型的不断演化过程中,逐渐变成了妈妈一样的"类",从而找到了自己的妈妈。这个故事中蕴含的编程哲理就是:对象的"类"是从无到有,又不断演化,最终又消失于无形中。。。。
"类",的确可以帮助我们理解复杂的现实世界,这纷乱的现实世界的确需要进行分类。但如果我们的思想被"类"束缚住了,"类"也就变成了"累"。如果一个生命对象开始时就被规定了固定的"类",那么他还能演化吗?
所以JavaScript中没有"类",类已化于无形,与对象融为一体。正是由于放下了"类"这个概念,JavaScript的对象才有了其他编程语言所没有的活力。
文章声明:本文部分内容参考自《悟透JavaScript》,这是一本学习JavaScript非常好的书。
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 研磨JavaScript系列(二):没有类
- 研磨JavaScript系列(一):回归简单
- 研磨JavaScript系列(三):函数的魔力
- 研磨Hadoop源码(二)-yarn-ClientToAMTokenSecretManagerInRM
- 研磨Hadoop源码(二)-yarn-ClientToAMTokenSecretManagerInRM
- 研磨Hadoop源码(二)-yarn-ClientToAMTokenSecretManagerInRM
- JavaScript系列(二:基础知识)
- 主题:iteye 研磨struts2 系列文章 汇总贴(完)
- 研磨Struts《系列好文》
- JavaScript语法入门系列(二) 变量
- JavaScript难点系列(二):this
- xss-javascript被攻击系列--(二)
- javascript 学习系列(二)
- 《悟透JavaScript》学习札记二之没有类
- 研磨设计模式 之 装饰模式(Decorator)1——跟着cc学设计系列
- 研磨设计模式 之 访问者模式(Visitor)3——跟着cc学设计系列
- 研磨设计模式 之 备忘录模式(Memento)1——跟着cc学设计系列
- 研磨设计模式 之 代理模式(Proxy)1——跟着cc学设计系列
- ios开发切换页面特效
- 写给明天的软件工程师——感悟篇
- 获得LayoutInflater实例的三种方式
- 多版本Python共存[支持使用pip安装包]
- hdu play on words(大神写的)
- 研磨JavaScript系列(二):没有类
- 表达式树
- 乘法算式
- 适配器模式 C++实现
- 关于c 语言处理变长参数问题
- multithreadqueue
- android camera 照片旋转了90度
- 动规-买车票(Ural1031)
- 为什么我觉得单片机开发比FPGA开发要难