0

源代码

源代码作文专题栏目,提供与源代码相关内容的作文集合,希望能快速帮助您找到有用的信息以解决您遇到的源代码问题。

分享

浏览

4840

作文

5

《源代码》观后感

全文共 1711 字

+ 加入清单

《终结者》中的一句台词:No Fate-或许这才是导演真正想告诉我们的。

源代码》构筑了一个多重平行时空的世界,NO FATE-《源代码》观后感。这里借用@书囚微博上的一张图来说明其体系架构。有意思的是,这张图是颠倒的,不知道是否有意为之?

整个故事的主线时空是最右边的那条线,我们称为时空1。在这条线里,科特上尉在阿富汗作战被宣布阵亡,参与了源代码计划,被一次次送到源代码的时空中(每一次去的是不同的时空),每8分钟返回一次,在倒数第二次(时空N-1)送回后,带回了作案嫌疑人的信息,并帮助时空1的世界成功避免了第二次脏弹攻击,拯救了世界。接着,他在古德温的帮助下,再次返回源代码时空,成功避免了第一次攻击的发生,并留在了那个时空(时空N)里。同时(这8分钟结束的时候),古德温上尉结束了科特在时空1中的生命。

绝大多数观众并没有意识到,《源代码》的故事构筑了多个时空,即主线故事(时空1),每一次返回源代码时的其他副线(时空2~时空N-1)都是不同的,最后成功避免了第一次攻击的时空N。这个或许是解读整个故事和导演意图的关键。

西方文化中宿命论的观点是很普遍的。从这个意义上来看,似乎每个时空的结局,都是预先确定的,都是宿命。

时空1中,通过科特上尉参与的源代码计划的努力,最终避免了第二次攻击,拯救了世界,而古德温最后杀死了科特上尉,源代码计划后续情况不明。

时空N是特别的,是一个美好的世界。在那个世界里,恐怖袭击被来自另一个时空(时空1)的上尉化解了,列车上的人们度过了一段快乐的时光,科特上尉的父亲接到了一个温情的电话,参与尚未启动的源代码计划的古德温接到了一条邮件,告诉她这个计划必将成功,并且希望她将来要帮助躺在冰箱里的科特。

然而,时空2~时空N-1的结局却是不明确的,而时空3?中,克里斯蒂安没有死在列车上,而是在站台上活了下来,时空N-1中,她是死在站台上,和自己的男友倒在了作案凶手的车边,观后感《NO FATE-《源代码》观后感》。这些时空,有可能和时空1一样也被拯救了,避免了第二次攻击,但也有可能是其他结果:如源代码计划在那个时空里根本没有发生过,或者源代码计划虽然执行了,但是那个时空的科特上尉没有及时找到凶手,第二次攻击还是发生了。

纵观全局,绝大多数时空都是和时空1类似的,不怎么美好,但也不太糟的现实。第一次攻击发生了,但是第二次更大的灾难被避免。只有在最差情况下,才会都发生。而时空N,这个美好的世界,并不是只在可能中存在。与其说时空N也是注定的,也是宿命,不如说,这样一个美好的世界虽然存在,但却需要去全力争取,不仅得依靠这个时空之外的力量(结合了N-1个时空的大量信息),甚至付出生命(时空1中科特上尉的生命)。

于是,导演真正想告诉观众的,并不是简单的宿命论观点,而是让大家相信,那个美好的世界,是需要付出努力的,只有相信命运始终可以挑战,才有可能最终创造奇迹.

附:源代码的剧情简介(转自豆瓣-有修改)在阿富汗执行任务的美国空军飞行员科特史蒂文斯上尉(杰克吉伦哈尔Jake Gyllenhaal饰)突然惊醒,发生自己在一辆高速行驶的列车上,而他的身边坐着一个素不相识的女子克里斯蒂安(米歇尔莫娜汉Michelle Monaghan饰)正在与自己讲话。科尔不知自己为什么会在这辆车上,而且他发现自己居然是以另一个人的身份存在,正当他迷惑不解的时候,列车上忽然发生爆炸…科特又一次惊醒,发现自己身处一个密闭的太空仓里,有一位女军官古德温(维拉法米加Vera Farmiga饰)正在通过视频和自己对话,并要求自己报告列车上发生的事情。一头雾水的科特还没搞明白是怎么回事时,他又一次被送上那辆列车。这次之后,科特终于明白自己在执行一件任务,负责调察芝加哥火车爆炸案找到恐怖份子并查出他的下一个目标。科特被一次又一次的送上那辆高速列车,每次只有八分钟的时间调察,调察过程中,科特发现自己已在一周前被宣布去世,原来他正在参与是一项"脑波原代码"的秘密任务,这项任务通过科特尚未完全死亡的脑细胞影像来还原事件,调查事情的真相。最终,科特顺利完成了任务,但是他却决定再一次返回列车,拯救列车上那些无辜的生命…

展开阅读全文

源代码观后感影评《源代码》

全文共 3603 字

+ 加入清单

这是结束了  还是另一个延续?

——《源代码影评观后感说道穿越,应该是最近最火的电影电视剧喜欢使用的内容了。其实穿越的另一个名字叫做“时空旅行”。其指的是人从某一时间点移动到另外一个时间点。事实上,所有的人都顺着时间一分一秒的自然前进,所以时间旅行就是违反这种自然时间变化的方式,大幅度的前往未来或者回到过去。本来一个数学几何学非常重要的节点被运用到一些电影电视剧上后,显得苍白与无聊,比如电视剧:《宫锁心玉》、《步步惊心》等。反观国外特别是欧美的穿越电影,不论是从科学还是可看性的角度上来说,都达到了寓教于乐却又不失品味的作用,而今天我想拿出来说说的就是著名后起之秀导演邓肯·琼斯导演的《源代码》。(该片形容起来容易让听者无法理解,没看过或者不到最后一刻是无法理解电影到底说什么的,这正是时光旅行电影的魅力所在,所以恳请老师观看这部电影之后再看看我写的影评~)

人物介绍:

柯尔特史蒂文:主角,美军上尉 (作者注:以后用上尉代替) 肖恩:历史教师,主角对应的源代码穿越者 。

克里斯蒂娜:肖恩的朋友,坐在主角的对面 ,对肖恩有好感。 拉特里奇博士:研发源代码系统的人 古德温:负责与主角联络。  内容简要:

(摘自“百度百科”,有改动)本片说的是在阿富汗执行任务的美国空军飞行员科特史蒂文斯上尉在火车上突然惊醒,而他的身边坐着一个素不相识的女子克里斯蒂安正在与自己讲话。上尉不知自己为什么会在这辆车上,而且他发现自己居然是以另一个人的身份存在,(火车爆炸中死去的历史老师)正当他迷惑不解的时候,列车上忽然发生爆炸。

上尉又一次惊醒,发现自己身处一个密闭的太空仓里(这是他想象的一个空间,后面会解释),有一位女军官古德温正在通过视频和自己对话,并要求自己报告列车上发生的事情。一头雾水的科特还没搞明白是怎么回事时,他又一次被送上那辆列车,但每次只能回到爆炸前最后的8分钟(爆炸时间是7:48),也就是这一天清晨的7点40分。

理论上,“源代码”并不是时光机器,“回到”过去的柯尔特无法改变历史,也并不能阻止爆炸发生。之所以大费周折让上尉进入源代码,是因为制造这起爆炸的凶手宣称将于6小时后在芝加哥市中心制造另一次更大规模的恐怖行动!为了避免上百万人丧生,在调察的过程中,科特发现自己已在一周前的一次军事任务中去世,原来他正在参与是一项“脑波原代码”的秘密任务,这项任务通过已经死亡的科特尚未完全死亡的脑细胞影像来还原事件,调查事情的真相,找到连环爆炸案的罪犯。最终,上尉顺利完成了任务,但是他却决定再一次返回列车,拯救列车上那些无辜的生命。同时更是拯救那个“陪伴”自己在源代码里的那个女主角克里斯蒂安。最后他成功的阻止了爆炸,借用者肖恩的身体与克里斯蒂安幸福的生活在一起。

疑点分析:

1. 为什么一开始上尉会出现在一个太空舱里?

因为他早在2个月前就死在了战场上,只剩一个活着的大脑,影片中正常的上尉与太空舱(可能是太空舱想象起来比较安全,毕竟他是从直升机上炸死的)是他脑中想象的影子,指挥中心与他视频其实根本看不到他的样子(指挥中心的屏幕是黑的)。

2. 这部电影中博士说只有8分钟回到过去的时间,为什么有几次却超过了8分钟他还没回去?

我认为,8分钟只是一个研究性的概念,每个人的短时记忆长短不一。真正让上尉回来的节点是火车爆炸,从那时开始,肖恩(死去的历史老师)的记忆才真正终结。

3. 关于源代码的作用机制? 之前我也提到,源代码绝非时光机器,可以回到过去改变历史。正如博士所说的,进入源代码只是发现过去发生了什么,就算改变了也对现实产生不了任何影响。这里还有一个理论就是关于平行世界。顾名思义,假设我们这个世界为真实世界,就存在着很多个同时存在的你跟我、还有所有事件的重新演绎。

引用著名的“祖母悖论”(摘自“百度百科”,有改动):假如小明回到过去把他的祖母给杀了,就是说他祖母在年轻时就死了,因此来讲小明的母亲也就没出生,这个人也就不可能再出生。而历史的发展到现在,按理来说小明是不存在的。而现实中小明的确是存在的。这两个情况就出现 了相互矛盾的情况。从而证明了人是不能回到过去。小明回到她祖母的时代,从那一时刻开始,宇宙的发展及演化就分成了两个平行的宇宙。第一种情况,他把他的祖母杀掉了,在第一个宇宙中的发展是这个人把她的祖母杀了,而到现在这个人也就不再存在了;而在现实的宇宙中的发展还是像现在一样,这个人还是存在的,祖母也是安好的,并没有什么事情发生。

正如影片中一开始,上尉第一次穿越的时候,女主角克里斯蒂娜在看到突如其来打翻在上尉鞋子上的热饮无动于衷,而第二次穿越的时候帮助上尉擦拭鞋子上的污渍;还有影片中部,当上尉穿越之后想打个电话给博士结果博士还没有上班所以无人接听(爆炸是7点48,博士还没上班,8点上班制),回到现实后,博士告诉他无论如何他都接不到,就算接到电话的也仅仅是平行世界的博士而已;同时在影片的最后,上尉在穿越的时候发了一条短信给

古德温,在这里很多包括我第一次看的时候都没有看明白,以为他真的发了一条短信给现实世界的古德温。其实后来一想,现实世界的上尉在古德温按下终止按钮的那一瞬间已经完全与现实世界切断了,根据刚刚的祖母原理,我们可以发现,他所联系到的一定是他穿越的那个平行世界的古德温而不是现实的。因此在此得出结论:上尉一共穿越了9次,这9次事件都是与真实世界不同并且不会影响真实世界,但是却又真实发生并且都对其所对应的平行世界产生了影响。

我的看法: 只要搞明白(转 载 于:w :源代码观后感)了平行世界这个理论,很多的穿越电影都能够迎刃而解。所以综上所述,对于这部电影的结局我又有了自己的看法:上尉能够回现实世界的唯一方法就是被火车炸死。因而博士和古德温都非常强调一点,上尉需要专心在车上寻找嫌犯,尽量不要参与其它的不相关事物。这点其实是在保证上尉可以在8分钟之后的爆炸时留在车上,从而被炸死送回现实世界。  博士谎称源代码是一个8分钟的虚拟世界,同样是防止上尉逃离火车的另一手段,如果上尉得知自己可以通过避免死亡而继续生存在源代码内,那么相较于自己现实世界的悲惨处境(他已经死了),他可能选择逃离列车而以肖恩的身份继续活下去,博士从而失去了他们手上唯一的合格穿越者。  所以我的结论是:源代码系统并非由死者8分钟记忆而来的仿真系统,而是一个可以将穿越者送入某个平行世界的系统,博士作为研发者无疑是知道内情的人,古德温有可能也知道这一点,而上尉则蒙在鼓里被利用。

有一个细节,在上尉在每次穿越回来时,都能看到模糊的影像,最后证明这是最后一次穿越他和克里斯蒂娜下火车之后看到的场景。这有可能是由于他在平行世界中穿越过程中,看到了某个时间处于未来的平行世界的影像所致。

我的感想:

终于,一部史诗级的时空之旅电影穿越完了,这是我迄今为止觉得看过的最完美的一部穿越电影,不论是从音质音效还是画面构造以及内容的严密性而言,都达到了一个大师级的水平,对于一个电影新秀来说更是了不起的作为。透过这部电影,我们可以深刻的感受到人类对于未知事物的充分好奇欲以及探索欲。其实我想说,关于电影的缜密性我们大可不必去探究他的漏洞,毕竟这不是科学论文。反观其中的亲情戏我认为嚼头更大:在最后的时刻,上尉邀请了克里斯蒂安去喝咖啡,而这是她期待了几个星期的事情。之后上尉离开了一会儿,去阻止爆炸,接着他以上尉同事的身份打电话给自己的父亲,向他的父亲道歉。他把最后的几分钟留给了自己和克里斯蒂安。8分钟后,古德温终止了源代码程序,时间定格在上尉和克里斯蒂安接吻的一刻。也许我们的生命也是一样,会在某一天突然地终止,而也许在这时,我们才会发现什么才是自己真正想要的,我们会后悔自己对亲人、朋友太过苛责,会发现自己曾经执着的东西原来毫无价值,然而到了这时,一切都无法改变。

仔细想想,其实我们的一生也是这样,当死亡降临时,我们又还会剩下什么呢?也许我们终究会被遗忘然后删除,就好像一段从未出现过的代码一样。也许到那时,我们回顾自己的一生,才会发现什么才是自己真正想要的。幸运的是,我们的美好生活可不仅仅只有那短暂的8分钟。我们需要让生活中的每一秒都变得有意义就像台词里说的:

If your life just have 1 minute, what will do?

当时间只剩下1分钟时,你会做什么?

I will let every seconds be meaningful. Everything is gonna be OK. 我会让每一秒钟都变得有意义,所有的事情都会好起来的。

【作者注:本文中关于“内容简要”、“祖母悖论”等较为官方的内容均为网络资源,均已标出,其余均为本人观点及看法,与任何团体和个人无关,本文未经允许严禁在任何其他公共页面展示。】

江西师范大学 音乐学院 10播音班

1005046051  涂明鉴

展开阅读全文

源代码观后感关于电影“源代码”的观后感疑问

全文共 2795 字

+ 加入清单

关于电影源代码”的疑问

不管怎样,和国产电影相比,"源代码"是一部不错的电影,每每看过一次国产大片,很少有此兴致写观后感,因为国产电影给人很少的想象空间;而美国电影则不同,就,"源代码"这部电影来说,虽然很多情节令人费解,但是一直在激发着观影者的想象力,也许这就是区别吧。

基本介绍:

柯尔特史蒂文:主角,美军上尉

肖恩范翠思:历史教师,主角对应的源代码穿越和载体者

古德温:负责与主角联络的人女指挥官

克里斯蒂娜:肖恩的朋友,坐在主角穿越点旁边

拉特里奇博士:研发源代码系统的人

在电影中可见的穿越一共九次,基本情况如下:

第一次:寻找并得知自己的身份,然后列车爆炸

第二次:找到炸弹,自称保安要求车厢内众人关闭电子设备,然后列车爆炸

第三次:跟踪一个中途下车的人,并且把克里斯蒂娜带下了车,列车爆炸,最后在打斗中掉落铁轨,被火车撞死

第四次:偷手枪被抓,被铐在车厢里直至列车爆炸

第五次:查到了CAOC-N的含义并且打电话给拉特里奇博士,克里斯蒂娜告诉他自己已经死于两个月前,上尉开始恢复部分记忆,失去意识直至穿越结束,虽然没有说明,但失去意识直至列车爆炸的可能性很大。

第六次:一带而过,列车最终爆炸

第七次:一带而过,列车最终爆炸

第八次:找到了放炸弹的人并追踪其至停车场,但被其击毙,然后列车爆炸

第九次:抓到了放炸弹的人,阻止了列车爆炸,给源代码世界的古德温发了邮件,给父亲打了电话,最后在八分钟之后继续生活在源代码世界

先提出我看完以后的几点疑问:

1、为何一个由死者八分钟记忆构成的虚拟世界可以如此完整?

2、既然肖恩和上尉都已经死去,为什么在穿越的8分钟的时间里还可以与周围的人交流?

片中第一次解释源代码世界是在上尉完成第三次穿越之后,拉特里奇博士出现并且给他简单说明了源代码世界的情况:源代码世界由死者的8分钟残留记忆重建而成。

然而事实上,上尉的穿越体肖恩,其所见远多于列车死者可能拥有的8分钟记忆,即使我们假定死者的8分钟记忆信息同时包含了死者的个人信息、性格等基本人格,使其可以对肖恩的种种行为做出反应,仍有大量的源代码内容,不应该存在于死者记忆之内。

比如肖恩在第五次穿越时曾经向车厢上的一个妇女询问CAOC-N徽章,并且得知这是美国空军内华达州基地云云。如果这个妇女仅仅由其死前8分钟的记忆重构而成,那么她绝无可能知道徽章的含义,这必须要调动她更久以前的记忆才行。

退一步而言,假设源代码世界由死者全部的记忆构成,超越了8分钟的限制。即便如此,在第三次穿越中,上尉追踪晕车者而至的车站,仍然不应该出现在死者记忆之中,晕车者中

途下车,显然不是死者之一,而车上的死者无可能知道车站的情况。同样,在第五次穿越中,上尉打电话给拉特里奇博士,接线员接了电话,这个接线员同样不应该存在于源于死者记忆的源代码世界。而最后一次穿越打给上尉父亲的电话,亦不应该存在。

3、为何最后一次穿越可以超过8分钟?

在第三次穿越之后的源代码介绍中,拉特里奇博士很确定的说,源代码穿越只能维持8分钟,因为系统来自死者的8分钟记忆,在8分钟之后,系统将无法维持。

上尉:

8分钟后会如何?

What happens after the 8 minutes?

博士:

之后?什么都没有

After? Nothing.

你在列车上将不复存在

You cease to exist on the train.

源代码世界中你只能存在那8分钟里

You cannnot exist inside the Source Code, beyond Fentress 8 minutes. 源代码不是时空旅行

Source Code is not time travel.

实际上源代码只是时空重现

Rather, Source Code is time reassignment.

这无疑和最后一次上尉的成功穿越相矛盾,而且仔细考虑的话,第三次和第八次穿越,也颇为可疑:

第三次穿越中上尉追下了火车,然而因为追错了人,火车依然爆炸,但是,如果犯人仍然是在火车相错时间发动爆炸,那么在爆炸时,上尉的这次穿越已经超过了八分钟,比起之前死于爆炸的两次穿越,这一次的时间已经增长,事实上如果没有意外的坠落铁轨,这一次穿越很难说是否会自行停止。

第八次穿越中,上尉被犯人用手枪击中,并在爆炸后不久死去,虽然时间似乎与之前的穿越相仿,但是犯人击中他之后,曾经看表自言自语:

哦,你扰乱了我的时机

Oh, you messed up my timing.

很显然,这一次爆炸的时间与以往不同,而且应该是较以往几次更晚,这一次穿越很可能也超越了8分钟的限制。

综合以上两个问题,我们试着得出结论:要么源代码是一部存在不小漏洞的科幻片;要么我们的初始假定就存在问题。

有趣的是,两个问题的初始假定都来自同一点:拉特里奇博士在第三次穿越之后对上尉的解释。

拉特里奇博士对于上尉而言是否可靠?我想显然是不可靠的,很明显的,博士在至少两处地方欺骗了上尉:

1、他表示我们肯定可以找到上尉的替代品,有些士兵认为这样很好,死后还可以为国家效力。

事实是:他在电影接近结尾处承认,上尉可能是唯一能够运作源代码系统的人。

2、他答应上尉在任务完成之后让上尉死掉

事实是:他打算清除上尉的记忆,为下一次任务做准备。

那么,博士在对上尉进行的源代码介绍当中,隐瞒甚至作假了一些内容,这种可能性是

确实存在的,比如我们之前考虑的两个存在疑点的问题。

那么,事实的真相是怎样? 这部分的猜测已经开始远离电影,只能是一种猜想,而无法通过影片来进行证明,我只提出我的一种假设: 如果博士在之前提到的两个问题上说谎,那么他的目的何在?这两点问题合成一句话,那就是,源代码系统是个仅有8分钟的虚拟世界。 那么反之考量,真实的情况就可能是:源代码是个不止8分钟的真实平行世界。 上尉每次穿越之后的返回,都因为他的死亡,而这是将其收回现实世界的唯一方法。因而博士和古德温都非常强调一点,上尉需要专心在车上寻找嫌犯,尽量不要参与其它的不相关事物。这点其实是在保证上尉可以在8分钟之后的爆炸时留在车上,从而被炸死送回现实世界。

博士谎称源代码是一个8分钟的虚拟世界,同样是防止上尉逃离火车的另一手段,如果上尉得知自己可以通过避免死亡而继续生存在源代码内,那么相较于自己现实世界的悲惨处境,他可能选择逃离列车而以肖恩的身份继续活下去,博士从而失去了他们手上唯一的合格穿越者。 所以我的结论是:源代码系统并非由死者8分钟记忆而来的仿真系统,而是一个可以将穿越者送入某个平行世界的系统,博士作为研发者无疑是知道内情的人,古德温有可能也知道这一点,而上尉则蒙在鼓里被利用。

由此而来的一个想法:上尉在每次穿越回来时,都能看到模糊的影像,最后证明这是最后一次穿越他和克里斯蒂娜下火车之后看到的场景。这有可能是由于他在平行世界中穿越过程中,看到了某个时间处于未来的平行世界的影像所致

展开阅读全文

源代码观后感《源代码》影评

全文共 398 字

+ 加入清单

源代码

《源代码》是一部很精彩的电影,能带给人欢乐,也能引起人的思考。我们都害怕面对死亡,甚至我们很少谈论它,因为死亡是不美好的,是痛苦的。所以在现实生活中,死亡一次就够了。如果不能活,却要一个人一遍遍的经历死亡,是一件很残忍的事。片中男主角在知道自己在现实生活中已经死亡,自己其实只是在源代码的虚拟世界中存活着,仍旧愿意去经受一遍遍死亡,只为找出制造火车爆炸案的凶手,救出一火车的人和防止更多的人被这个凶手继续杀害。这种精神让人敬佩不已。

从片中一女主角身上,我也学到了一些做人的基本原则,那就是我们都应该做一个信守承诺的人,不管诱惑有多大,不管能得到多少的利益,都不应该背信弃义,把自己的快乐建立在别人的痛苦之上。

最后我想说,源代码也是一个很有用的技术,因为它可以让很多悲剧免于发生,虽然它只是人们的想象,现实中尚未研发出,但我相信,在科学技术发展如此迅速的今天,源代码一定能被研发出来造福人类。

展开阅读全文

js代码改写成jq代码jQuery工作原理解析以及源代码示例

全文共 2316 字

+ 加入清单

jQuery的开篇声明里有一段非常重要的话:jQuery是为了改变javascript的编码方式而设计的。从这段话可以看出jQuery本身并不是UI组件库或其他的一般AJAX类库。jQuery改变javascript编码方式!

那么它是如何实现它的声明的呢?这里,用以下的一段简短的使用流程:

1、查找(创建)jQuery对象:$("selector");

2、调用jQuery对象的方法完成我们需要完成的工作:$("selector").doOurWork();好了,jQuery就是以这种可以说是最简单的编码逻辑来改变javascript编码方式的。这两个步骤是jQuery的编码逻辑核心!

要实现这种简洁编码方式,创建jQuery对象这一环节至关重要。因此,jQuery的dom元素查找能力相当强悍。此外,jQuery对象的方法肯定是有限的,有限的方法满足不了日益增长各有所需的要求,所以,必须提供jQuery对象方法的扩展能力。

强悍的dom元素查找能力,以及随心所欲的方法扩展,这两点正是jQuery的核心所在!来一个简单的示例,来说明jQuery是如何工作的:

Transitional//EN”””>baidu

$(function(){

$(“a“).click(function(e){//1)查找$(”a”);2)jQuery对象事件click;3)jQuery对象方法hide$(this).hide(“slow“);

returnfalse;

});

});

jQuery中有一个“配置”的思想,这一点使得对象的属性/事件等设置变得容易理解且十分简便,如下一个拖拽组件的初始化:

可以看到,$("#drag1")是查找并创建一个jquery对象,然后调用Draggable方法进行拖拽初始化,在此方法调用时,传递一个“配置”对象,进行拖拽操作的初始化配置。这一“配置”的思想,极大简化了一些编码步骤,并相当直观和易懂。

以下我进行三个问答:

1、问:为什么$(selector)之后,返回的是jQuery对象?

答:从jQuery的源代码中,我们可以知道:var$=jQuery。因此当我们$(selector)操作时,其实就是jQuery(selector),创建的是一个jQuery对象。当然正确的写法应该是这样的:varjq=new$(selector);而jQuery使用了一个小技巧在外部避免了new,在jquery方法内部:if(window==this)returnnewjQuery(selector);

2、问:为什么创建一个jQuery对象之后,我们可以这样写

$(selector).each(function(index){…});进行遍历操作呢?

答:其实jQuery(selector)方法调用时,在jQuery(selector)方法内部,最后返回的是一个数组:returnthis.setArray(a);而each方法体内部是一个for循环,在循环体内是这样调用的:method.call(this[i],i)。

3、问:为什么jQuery能做到jQuery对象属性/方法/事件的插件式扩展?

答:如果您有一些javasciprt的面向对象方面的知识,就会知道,jQuery.prototype原型对象上的扩展属性/方法和事件,将会给jQuery的对象“扩展”。基于这一点,jQuery是这样写的:jQuery.fn=jQuery.prototype。所以,当我们扩展一个插件功能时,如下:jQuery.fn.check=function(){

returnthis.each(function(){

其实就是:

综上所述,jQuery给我们带来了一个简洁方便的编码模型(1>创建jQuery对象;2>直接使用jQuery对象的属性/方法/事件),一个强悍的dom元素查找器($),插件式编程接口(jQuery.fn),以及插件初始化的”配置”对象思想.

附:实现自己的jQuery

Transitional//EN””http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

divvv

fdsf

//实现自己的MyQuery框架

varMyQuery=function(selector){

if(window==this)returnnewMyQuery(selector);

//这里只实现dom类型的简单查找,嘿嘿

vardoms=document.getElementsByTagName(selector);

vararr=[];

for(vari=0;i

arr.push(doms.item(i));

}

returnthis.setArray(arr);

}

MyQuery.prototype.setArray=function(arr){this.length=0;

[].push.apply(this,arr);

returnthis;

}

MyQuery.fn=MyQuery.prototype;

var$=MyQuery;

//插件扩展1)each

MyQuery.fn.each=functionethod){for(vari=0,l=this.length;i

method.call(this[i],i);

}

}

//插件扩展2)show

MyQuery.fn.show=function(){

this.each(function(i){

alert(i+“:“+this.id+“:“+this.innerHTML);});

}

//debugger

$(“div“).show();

展开阅读全文