悟透JavaScript
<div class="posthead"> Posted on 2008-02-25 13:32 阅读(24340) 所属分类:我们一定需要类吗? 还记得儿时那个“小蝌蚪找妈妈”的童话吗?也许就在昨天晚,你的孩子刚好是在这个美丽的童话中进入梦乡的吧。可爱的小蝌蚪也就是在其自身类型不断演化过程中,逐渐变成了和妈妈一样的“类”,从而找到了自己的妈妈。这个童话故事中蕴含的编程哲理就是:对象的“类”是从无到有,又不断演化,最终又消失于无形之中的... “类”,的确可以帮助我们理解复杂的现实世界,这纷乱的现实世界也的确需要进行分类。但如果我们的思想被“类”束缚住了,“类”也就变成了“累”。想象一下,如果一个生命对象开始的时就被规定了固定的“类”,那么它还能演化吗?蝌蚪还能变成青蛙吗?还可以给孩子们讲小蝌蚪找妈妈的故事吗? 所以,JavaScript中没有“类”,类已化于无形,与对象融为一体。正是由于放下了“类”这个概念,JavaScript的对象才有了其他编程语言所没有的活力。 如果,此时你的内心深处开始有所感悟,那么你已经逐渐开始理解JavaScript的禅机了。函数的魔力 接下来,我们再讨论一下JavaScript函数的魔力吧。 JavaScript的代码就只有function一种形式,function就是函数的类型。也许其他编程语言还有procedure或 method等代码概念,但在JavaScript里只有function一种形式。当我们写下一个函数的时候,只不过是建立了一个function类型的实体而已。请看下面的程序:<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"> <span style="color: #000000"><span style="color: #0000ff">function<span style="color: #000000">myfunc() { alert(<span style="color: #000000">"<span style="color: #000000">hello<span style="color: #000000">"<span style="color: #000000">); }; alert(<span style="color: #0000ff">typeof<span style="color: #000000">(myfunc)); 这个代码运行之后可以看到typeof(myfunc)返回的是function。以上的函数写法我们称之为“定义式”的,如果我们将其改写成下面的“变量式”的,就更容易理解了:<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"> 这里明确定义了一个变量myfunc,它的初始值被赋予了一个function的实体。因此,typeof(myfunc)返回的也是function。其实,这两种函数的写法是等价的,除了一点细微差别,其内部实现完全相同。也就是说,我们写的这些JavaScript函数只是一个命了名的变量而已,其变量类型即为function,变量的值就是我们编写的函数代码体。 (编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- WPF中ComboBox绑定数据库自动读取产生数据
- .net – DNU发布 – 来自MSBuild的no-source
- asp.net-web-api – WebApi 2.1 PUT抛出错误415
- asp.net编程实现删除文件夹及文件夹下文件的方法
- .net程序开发IOC控制反转和DI依赖注入详解
- ASP.NET MVC4 Razor模板简易分页效果
- asp.net-mvc – 为什么我的ActionFilters都没有运行?
- asp.net – CalendarExtender定位问题
- asp.net-mvc – Visual Studio 2010 Full和ASP.NET MVC 2.0
- asp.net-web-api – WebAPI:403在发布网站后被禁止