日期:2014-05-16  浏览次数:20368 次

2011年11月17日,每天都是这么过的,没有什么新奇。偶尔翻翻旧书,别有新的一片天地。JS我自认为已经掌握到很高深的火候了,但其实不然,我哪只是冰山一角。我一
2011年11月17日,每天都是这么过的,没有什么新奇。偶尔翻翻旧书,别有新的一片天地。JS我自认为已经掌握到很高深的火候了,但其实不然,我哪只是冰山一角。我一般看书看得很快,只是了解到其中的编程思想,然后就忘了。这篇日志算是读后日志吧。
让我进入今天的主题吧。JS我学了好多年了,也用了好多年了。今天回过头来看一下,才发现它是哪么样的博大精深,灵活,精巧。以前好多人都在讨论javascript到底是面向对像,还是基于对像的语言,不过今天我不想讨论这个话,只有大家深入进去,用自己的思维去体会这其中的精髓。JS中存在大量的函数,也许有人见过从头到尾的函数编程,难道你不觉得奇怪吗?我有过,我觉得好难理解,与正常的面向对像编程有很大的不同。好像违备了面向对像编程的思维。正因为它的灵活,有时会很复杂,有时也会很简单,关于在于编程者对它的理解有多深。原来在JS中函数也是被看作为对像的。即函数也是可以被作为参数随时调用的。举个例子:
function class_1(){
};也许很多面向对像的编程人员一看,这不是一个方法吗?就是函数。如果是这样,我还真没有什么好说的。可在这里它也可以这样被调用
var cl=new class_1();可能很多看到这里一下子反应不过来,我当初见到这样,确实转不湾来。这不是一个方法怎么能用创建对像的new 方法创建呢?其实这就是JS的灵活性的体现。它可以理解为面向对像中的类的构造函数。这样还会好一点。我这里讲得有点乱。应该先讲类的申明,对像的定义。对像的创建有无类型对像,主要表现是用{}这种形式定义的。如:

name:"zhangshang",
sex:"xinbie",
fnc:function(){
alert(this.name);
},


看到这个定义有什么感想呢?当然了,这样的定义没有什么任何用处,当这样呢?
var user={
name:"zhangshang",
sex:"xinbei"
fnc:function(){
alert(this.name);
}
}
从这里大家可以看到什么呢?是不是看到了,如果没有里面的fnc:function()的定义,大家不难发现,这是一个一组数值的集合,从这里我们也不难发现JS的对像理念其实就是一组数值对。因此他们的获取也非常简便,哪就用[]这样的方括号进行调用,类似于数组的引用。
如var name=user[name];也许大家又有问题了,里面的属性引用如果用点引用岂不更方便吗?确实是的,var name=user.name;
是的,是可以这样做的,但是如果在遇到这种情况,也许大家会觉得这样用也有它的好处。假如有一个数组:
   var array_a=["name","sex"];
可以这么认为,这个数组记录了,user对像的属性名,哪如何上用这个作索引去访问对像相应的值呢,这时方括号就派上用场了。
如user[array_a[i]],这样就好了。是不是很简单呢,关于这方面的知识,会有很多,也一下子讲不完。今天 到此了,有机会交流的加我QQ:550703900;


1 楼 suijiayun 2011-11-18  
还用了好多年啊
2 楼 xaocaotanghui 2011-11-18  
suijiayun 写道
还用了好多年啊

很多年啊