悟透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,变量的值就是我们编写的函数代码体。 (编辑:鄂州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何使用resxresourcewriter写入所有三个值?
- 为什么asp.net会员资格有用户表和会员表?
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统的ASCX?
- asp.net – 如何使用正则表达式将百分比验证到两位小数?
- asp.net-mvc – 在一个页面中以两种不同的形式使用多个@ Ht
- asp.net – 将url参数添加到asp主题文件夹中的css文件中
- 在mvc4 asp.net中的Razor View中的模型声明
- .net – DNU发布 – 来自MSBuild的no-source
- ASP.Net核心 – 获取帖子表格的所有数据
- ASP.NET OnClientClick =“return false;”不起作用
- .NET中的抽象工厂
- ASP.NET core Web中使用appsettings.json配置文件
- asp.net-mvc – 有条件地在webgrid中显示图像 –
- asp.net – IE8 Win7 Facebook Connect问题
- asp.net – Isapi过滤器无法在IIS 7上运行(在IIS
- asp.net – 通过Web服务访问连接字符串
- asp.net – 查询字符串参数使我的应用程序面临风
- asp.net – Intranet / Internet的Windows身份验
- 各大输入法分类词库内部格式的简单比较
- asp.net – Request.Url.AbsoluteUri和重写的URL