悟透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,变量的值就是我们编写的函数代码体。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- MVC3中的IValidatableObject – 客户端验证
- asp.net-mvc – FormsAuthentication.SetAuthCookie vs For
- asp.net-mvc – ASP.NET MVC会话过期
- asp-classic – 如何检查VBScript中是否存在POST提交字段?
- asp.net-mvc – 发布ASP.NET MVC 3 Html.TextAreaFor的Html
- asp.net – IIS URL重写:强制规范主机名和HTTP到HTTPS重定
- asp.net – 使用/ signalr / ping调用时使用长轮询
- ASP.NET控件属性与[Flags]枚举
- asp.net-mvc – .NET MVC / Entity Framework应用程序中的内
- asp.net-core – 在ASP.NET vNext过滤器中获取注入对象
- 将Funscript添加到现有的ASP.NET MVC项目中
- 如果我在ASP.NET网页中打开数据库连接会发生什么
- asp.net-mvc – 在ASP.Net MVC中使用System.Guid
- asp.net-mvc – ASP.NET MVC 3用户验证
- asp.net – 如何使用EntityFramework种子数据代码
- asp.net-mvc – ELMAH – MVC 3 – 403 – 禁止:
- iis-7 – ASP.NET请求队列优先级
- asp.net – 如何为客户端和服务器缓存设置不同的
- asp.net – 避免表格重新提交
- asp.net – 我可以在Visual Studio 2008中使用MV
