`
abruzzi
  • 浏览: 444710 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论
文章列表
  第九章 函数式的Javascript 要说JavaScript和其他较为常用的语言最大的不同是什么,那无疑就是JavaScript是函数式的语言,函数式语言的特点如下: 函数为第一等的元素,即人们常说的一等公民。就是说,在函数式编程中,函数是不依赖于其他对象而独立存在的(对比与Java,函数必须依赖对象,方法是对象的方法)。 函数可以保持自己内部的数据,函数的运算对外部无副作用(修改了外部的全局变量的状态等),关于函数可以保持自己内部的数据这一特性,称之为闭包。我们可以来看一个简单的例子:   var outter = function(){ var ...
接上篇:JavaScript内核系列 第8章 面向对象的JavaScript(上) 8.4实例:事件分发器 这一节,我们通过学习一个面向对象的实例来对JavaScript的面向对象进行更深入的理解,这个例子不能太复杂,涉及到的内容也不能仅仅为继承,多态等概念,如果那样,会失去阅读的乐趣,最好是在实例中穿插一些讲解,则可以得到最好的效果。 本节要分析的实例为一个事件分发器(Event Dispatcher),本身来自于一个实际项目,但同时又比较小巧,我对其代码做了部分修改,去掉了一些业务相关的部分。 事件分发器通常是跟UI联系在一起的,UI中有多个组件,它们之间经常需要互相通信 ...
第八章 面向对象的 Javascript 面向对象编程思想在提出之后,很快就流行起来了,它将开发人员从冗长,繁复,难以调试的过程式程序中解放了出来,过程式语 言如 C ,代码的形式往往如此: Component comp; init_component(& comp, props);   而面向对象的语言如 Java ,则会是这种形式:   Component comp; comp.init(props);   可以看出,方法是对象的方法,对象是方法的对象,这样的代码形式更接近人的思维方式,因 ...
第七章 闭包 闭包向来给包括JavaScript程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识。如果对作用域,函数为独立的对象这样的基本概念理解较好的话,理解闭包的概念并在实际的编程实践中应用则颇有水到渠成之感。 在DOM的事件处理方面,大多数程序员甚至自己已经在使用闭包了而不自知,在这种情况下,对于浏览器中内嵌的JavaScript引擎的bug可能造成内存泄漏这一问题姑且不论,就是程序员自己调试也常常会一头雾水。 用简单的语句来描述JavaScript中的闭包的概念:由于JavaScript中,函数是对象,对象是属性的集合,而属性 ...
  第六章 正则表达式 正则表达式是对字符串的结构进行的形式化描述,非常简洁优美,而且功能十分强大。很多的语言都不同程度的支持正则表达式,而在很多的文本编辑器如Emacs,vim,UE中,都支持正则表达式来进行字符串的搜索替换工作。UNIX下的很多命令行程序,如awk,grep,find更是对正则表达式有良好的支持。 JavaScript同样也对正则表达式有很好的支持,RegExp是JavaScript中的内置“类”,通过使用RegExp,用户可以自己定义模式来对字符串进行匹配。而JavaScript中的String对象的replace方法也支持使用正则表达式对串进行匹配,一旦匹配 ...
第五章 数组 JavaScript的数组也是一个比较有意思的主题,虽然名为数组(Array),但是根据数组对象上的方法来看,更像是将很多东西混在在一起的结果。而传统的程序设计语言如C/Java中,数组内的元素需要具有相同的数据类型,而作为弱类型的JavaScript,则没有这个限制,事实上,JavaScript的同一个数组中,可以有各种完全不同类型的元素。   方法 描述 concat()   连接两个或更多的数组,并返回结果。 join()
前言 去年9月份开发的那个小工具sTodo,只是做到了能用,但是还很不好用,比如没有定时的提醒功能,整个框架比较死板,不方便扩展,虽然设计之初就考虑要使用脚本语言进行脚本化,提供更强的定制能力,但是一直因为工作上事情太多,没有经历投入而悬停。   不明真相的可以参看以前的两篇文章: Swing小应用(Todo-List)之一 Swing小应用(Todo-List)之二   sTodo的现状 sTodo内部用了一套任务管理模块,可以做到定时提醒的功能,效果还是不错的: 虽然UI还很原始,但是基本功能都已经实现,剩下就是美化UI了。另外,插件系统也基本可用,后台使用JavaSc ...
JavaScript内核系列的专栏已经申请开通了,目前已经发表了该系列的前4篇,   第一章:前言及概述 第二章:基本概念 第三章:对象及JSON 第四章:函数 第五章:数组 第六章:正则表达式 第七章:闭包 第八章:面向对象的JavaScript(上) 第八章:面向对象的JavaScript(下)   2010-04-27 更新两章[数组],/正则表达式/。 2010-05-04 更新闭包一章 2010-05-06 更新两章,面向对象的JavaScript   专栏地址为: http://www.iteye.com/wiki/javascript-core ...
  第四章 函数 函数,在C语言之类的过程式语言中,是顶级的实体,而在Java/C++之类的面向对象的语言中,则被对象包装起来,一般称为对象的方法。而在JavaScript中,函数本身与其他任何的内置对象在低位上是没有任何区别的,也就是说,函数本身也是对象。 总的来说,函数在JavaScript中可以:   被赋值给一个变量 被赋值为对象的属性 作为参数被传入别的函数 作为函数的结果被返回 用字面量来创建 4.1函数对象 4.1.1 创建函数 创建JavaScript函数的一种不长用的方式(几乎没有人用)是通过new操作符来作用于Func ...
第三章 对象与JSON JavaScript对象与传统的面向对象中的对象几乎没有相似之处,传统的面向对象语言中,创建一个对象必须先有对象的模板:类,类中定义了对象的属性和操作这些属性的方法。通过实例化来构筑一个对象,然后使用对象间的协作来完成一项功能,通过功能的集合来完成整个工程。而Javascript中是没有类的概念的,借助JavaScript的动态性,我们完全可以创建一个空的对象(而不是类),通过像对象动态的添加属性来完善对象的功能。 JSON是JavaScript中对象的字面量,是对象的表示方法,通过使用JSON,可以减少中间变量,使代码的结构更加清晰,也更加直观。使用JSON ...
  第二章 基本概念 本章将聚焦于JavaScript中的基本概念,这些概念与传统语言有比较大的不同,因此单独列出一章来做专门描述,理解本章的概念对书中后续章节的概念,代码的行为等会有很大的帮助,读者不妨花比较大的 ...
前言 从2006年第一次接触JavaScript至今,算来也有四年时间了。上大学的时候,有一段时间沉迷于函数式编程,而那时候对JavaScript的理解仅仅局限在这是用来做网页的一种脚本,那些很恶心的弹出窗口和不断在页面上漂浮的黄色广告就是用JavaScript做出来的。工作之后,由于我们产品本身就是基于WEB展现的,而这个时候Ajax已经复兴数年了,但是于我,则只有“Ajax可以实现页面的局部刷新”这样一个概念。在实际的应用中,我才有机会面对真正的JavaScript,早期关于函数式编程的概念开始在我的记忆力复苏,而真正将JavaScript比较熟练的应用在产品的开发中,那已经是09年年末了 ...
今天为2009年12月20日,特将自己2009年一年中之所学总结一下,一来对自己的经历回顾一下,二来考虑下来年的发展方向。   技术性知识 统计了一下,在javaeye发帖30篇,其中内容涉及方面颇为杂乱,有关于python的,有关于javascript的,vim, C, java等方面,总结如下:   学会了python的网络,图像处理等方面的技术 学会了jQuery的基本应用,并在项目中大量应用 学会了java中的Swing开发,并开发出一个小工具sTodo 学习并实践了vim的一些技巧 对java中的lex&yacc--javacc,并开发了几个小工具 用 ...
引言 前一段时间用swing开发了sTodo(http://code.google.com/p/stodo/ ),对swing开发GUI的基本流程算是熟悉了,所以也常用swing来写些小东西。在实际的开发或者学习中,经常遇到这样的场景:想要执行一段javascript脚本,验证一些想法,这 ...
引言 Java中的匿名类是比较有意思的一种编程方式,在swing中关于监听器的注册时,经常可见到这样的代码: iexit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { int y = JOptionPane.showConfirmDialog( null, "Confirm exit", "Confirm Exit Dialog", JOption ...
Global site tag (gtag.js) - Google Analytics