首页 | 乐园 | 淘宝店 | 社区 | 电驴 | 网页游戏 | 网址大全

热门搜索: pdf 电子书 股票 心理学 易经 日本 特种部队 数学

v

当前位置:VeryCD资料电子图书

资料资源事务区


《精通JavaScript》(Pro JavaScript Techniques )高清扫描版 Amazon 五星盛誉图书[PDF]

状态: 精华资源
摘要:
发行时间2008年
语言简体中文
时间: 2009/06/21 11:33:40 发布 | 2009/06/21 16:26:17 更新
分类: 资料   电子图书  
统计:389次 收藏
收藏: fav  分享给好友
相关: 分享到开心网  分享到校内  收藏到QQ书签  订阅本资源RSS更新  美味书签  subtitle
中文名精通JavaScript
原名Pro JavaScript Techniques
资源格式PDF
版本高清扫描版 Amazon 五星盛誉图书
发行时间2008年
地区大陆
语言简体中文
简介

IPB Image


精通JavaScript(图灵计算机科学丛书)

让你大开眼界的 JavaScript 力作

跟随 jQuery 之父到达前所未有的深度

Amazon 五星盛誉图书

此为高清扫描版


出版社 : 人民邮电出版社
系列名 :图灵程序设计丛书·Web开发系列
作者  :(美)John Resig/


本书是目前最深入的JavaScript图书,讲述了现代JavaScript的所有知识,展现了这门技术将能给网站建设带来如何丰富的体验。本书言简意赅,扩展了读者视野,并关注于基础且重要的主题--现代JavaScript是什么和不是什么,浏览器支持的当前状态,以及需要注意的陷阱等。书中所有概念都来自于现实案例的分析。

John Resig,世界级Javascript大师,著名框架jQuery的创造者,拥有多年的Web应用程序开发经验。他现在是Mozilla公司的JavaScript传道者,此前曾经在非赢利组织“每个儿童一台笔记本电脑(OLPC)”担任程序员,并在罗切斯特理工学院从事过数据挖掘方面的研究。除了jQuery之外,他还开发7Sparklines程序库、AniWiki、建模工具dModeler等许多有影响的应用程序。他的个人网站是www.ejohn.org。

  本书适合各层次Web开发人员阅读。

引用

作者前言
如果说现代Web应用中有什么不可忽视的事实,那便是 JavaScript 程序设计成为了一项必备的技能,需要聪敏而且在行的开发者。而问题在于直到最近为止,JavaScript 都被当作一个玩具式的语言——事实上它根本不是。

在本书中,我会告诉你现代的 JavaScript 开发是如何进行的,并着力于那些用来构筑专业的动态Web应用所必需的实用技能。

我会先从面向对象 JavaScript 的基础知识开始,然后介绍好的开发习惯、调试与测试技巧,再介绍DOM脚本编程与事件处理,使你了解到它们是如何 让JavaScript, CSS 与 HTML 这三者动态交互的。你将运用这些知识来构建一些改进页面的效果和有趣的交互方式。这之后,我详细地探寻 了Ajax 背后的概念,以及如何用它来改进用户体验。最后,我会展示一些 JavaScript 的未来方向——它将发展成什么样子?在本书最后提供的附录能帮助你更方便快捷地查询语法。

本书自始至终贯穿着许多实例分析与大量可以重用的函数,你可以在自己的应用程序中加以运用,以体会本书介绍的概念。这些代码应有尽有,从相册、自动完成的搜索框到一个完整的 Ajax wiki 应用程序。此外,我还提供了一系列运用现代 JavaScript 库的例子,这些库包括 Prototype, Scriptaculous 等。

只要有基本 JavaScript 经验的程序员都能够通过阅读此书了解到这些技术后面的最新技巧。我希望你能从阅读本书中获得进步,并学到成功的 JavaScript 开发者所必备的一切知识。



引用

这本书英文名是Pro JavaScript Techniques。是jQuery之父John Resig所写的。
  书中的内容确实比较高级些,并非如犀牛书般的基础参考而已。
  这本书看下来的感觉就是:果然是JQ之父写的!
  为什么这样说呢,因为这本书可以说是JQ的源码解读。这里的很多篇幅都可以看做JQ的一些方法的原型实现。
  包括选择器,attr,insert,append,remove等,还有event注册等方法。
  如果你想要体会JQ是如何炼成的,看这本书是最好不过的了,对于你对JS的理解会上一个层次,了解JQ编写的原理,体会到大师的想法。
  当然看了这个之后自然就看到了比大师更大师的,Dean Edwards(http://dean.edwards.name/),这个牛人就是著名的JS压缩利器parker的作者。他写的cssQuery可以说是jQuery的最初的想法。但我们的John Resig很快发现光是选择器,比不过cssQuery,但是封装更丰富的操作那是很好很美妙的事情。


请下载后帮忙供源
使用迅雷下载或者下完就跑的请速度离开!

IPB Image
IPB Image



目录

第一部分 认识现代JavaScript

第1章 现代JavaScript程序设计 2
1.1 面向对象的JavaScript 2
1.2 测试代码 3
1.3 打包分发 4
1.4 分离式DOM脚本编程 5
1.4.1 DOM 6
1.4.2 事件 7
1.4.3 JavaScript与CSS 8
1.5 Ajax 8
1.6 浏览器支持 11
1.7 小结 12

第二部分 专业JavaScript开发

第2章 面向对象的JavaScript 14
2.1 语言特性 14
2.1.1 引用 14
2.1.2 函数重载和类型检查 16
2.1.3 作用域 19
2.1.4 闭包 20
2.1.5 上下文对象 23
2.2 面向对象基础 24
2.2.1 对象 25
2.2.2 对象的创建 25
2.3 小结 30

第3章 创建可重用代码 31
3.1 标准化面向对象的代码 31
3.1.1 原型式继承 31
3.1.2 类式继承 32
3.1.3 Base库 35
3.1.4 Prototype库 36
3.2 打包 39
3.2.1 命名空间 40
3.2.2 清理代码 42
3.2.3 压缩 43
3.3 分发 45
3.4 小结 47

第4章 调试与测试的工具 48
4.1 调试 48
4.1.1 错误控制台 48
4.1.2 DOM查看器 52
4.1.3 Firebug 54
4.1.4 Venkman 55
4.2 测试 56
4.2.1 JSUnit 56
4.2.2 J3Unit 57
4.2.3 Test.Simple 58
4.3 小结 59

第三部分 分离式JavaScript

第5章 DOM 62
5.1 DOM简介 62
5.2 遍历DOM 62
5.2.1 处理DOM中的空格 64
5.2.2 简单的DOM遍历 66
5.2.3 绑定到每一个HTML元素 67
5.2.4 标准的DOM方法 68
5.3 等待HTML DOM的加载 69
5.3.1 等待整个页面的加载 70
5.3.2 等待大部分DOM的加载 70
5.3.3 判断DOM何时加载完毕 71
5.4 在HTML文档中查找元素 73
5.4.1 通过类的值查找元素 73
5.4.2 使用CSS选择器查找元素 74
5.4.3 XPath 76
5.5 获取元素的内容 77
5.5.1 获取元素内的文本 77
5.5.2 获取元素内的HTML 78
5.6 操作元素特性 79
5.7 修改DOM 82
5.7.1 使用DOM创建节点 83
5.7.2 插入到DOM中 83
5.7.3 注入HTML到DOM 85
5.7.4 删除DOM节点 87
5.8 小结 88

第6章 事件 89
6.1 JavaScript事件简介 89
6.1.1 异步事件与线程 89
6.1.2 事件阶段 91
6.2 常见事件特性 93
6.2.1 事件对象 93
6.2.2 this关键字 93
6.2.3 取消事件冒泡 94
6.2.4 重载浏览器的默认行为 95
6.3 绑定事件监听函数 97
6.3.1 传统绑定 98
6.3.2 DOM绑定:W3C 99
6.3.3 DOM绑定:IE 100
6.3.4 addEvent和removeEvent 100
6.4 事件类型 103
6.5 分离式脚本编程 103
6.5.1 JavaScript禁用的未雨绸缪 104
6.5.2 确保链接不依赖于JavaScript 104
6.5.3 监听CSS何时禁用 105
6.5.4 事件的亲和力 105
6.6 小结 106

第7章 JavaScript与CSS 107
7.1 访问样式信息 107
7.2 动态元素 109
7.2.1 元素的位置 109
7.2.2 元素的尺寸 115
7.2.3 元素的可见性 117
7.3 动画 119
7.3.1 滑动 119
7.3.2 渐显 119
7.4 浏览器 120
7.4.1 鼠标位置 120
7.4.2 视口 121
7.5 拖放 123
7.6 库 128
7.6.1 moo.fx和jQuery 128
7.6.2 Scriptaculous 129
7.7 小结 131

第8章 改进表单 132
8.1 表单验证 132
8.1.1 必填字段 134
8.1.2 模式匹配 136
8.1.3 规则集合 138
8.2 显示错误信息 139
8.2.1 验证 140
8.2.2 何时验证 142
8.3 可用性的提升 144
8.3.1 悬停的说明 144
8.3.2 标记必填字段 146
8.4 小结 147

第9章 制作图库 148
9.1 图库示例 148
9.1.1 Lightbox 148
9.1.2 ThickBox 150
9.2 制作图库 151
9.2.1 分离加载 154
9.2.2 半透明的覆盖层 155
9.2.3 定位盒子 157
9.2.4 导航 160
9.2.5 幻灯片 162
9.3 小结 165

第四部分 Ajax

第10章 Ajax导引 168
10.1 使用Ajax 168
10.1.1 HTTP请求 169
10.1.2 HTTP响应 173
10.2 处理响应数据 176
10.3 完整的Ajax程序包 177
10.4 数据的不同用途 179
10.4.1 基于XML的RSS Feed 179
10.4.2 HTML注入器 181
10.4.3 JSON与JavaScript:远程执行 182
10.5 小结 182

第11章 用Ajax改进blog 183
11.1 永不终止的blog 183
11.1.1 blog的模板 183
11.1.2 数据源 186
11.1.3 事件检测 187
11.1.4 请求 188
11.1.5 结果 188
11.2 实时网志 191
11.3 小结 193

第12章 自动补全的搜索 194
12.1 自动补全搜索的例子 194
12.2 制作页面 195
12.3 监听键盘输入 197
12.4 抓取结果 200
12.5 导航结果列表 202
12.5.1 键盘导航 202
12.5.2 鼠标导航 203
12.6 最终成果 203
12.7 小结 208

第13章 Ajax wiki 209
13.1 wiki是什么 209
13.2 对话数据库 209
13.3 Ajax请求 211
13.4 服务器端代码 212
13.4.1 处理请求 212
13.4.2 执行和格式化SQL 213
13.5 处理JSON响应 215
13.6 附加的案例研究:JavaScript blog 216
13.7 应用程序的代码 217
13.7.1 核心JavaScript代码 218
13.7.2 JavaScript SQL库 221
13.7.3 Ruby服务器端代码 221
13.8 小结 224

第五部分 JavaScript的未来

第14章 JavaScript路在何方 226
14.1 JavaScript 1.6与1.7 226
14.1.1 JavaScript 1.6 226
14.1.2 JavaScript 1.7 229
14.2 Web Applications 1.0 231
14.2.1 制作时钟 232
14.2.2 简单行星模拟 235
14.3 Comet 238
14.4 小结 240

第六部分 附录
附录A DOM参考手册 242
附录B 事件参考手册 257
附录C 浏览器 273

索引 275

仅需3M,安全播放所有视频,简单到极致,绿色无插件,自动下载字幕

More ...更多相关资源 >>

这里是其它用户补充的资源(我也要补充):

暂无补充资源

最新评论

liyu76   2009/06/26 12:01:49  55楼   举报

这是一本好书,下了来看,真的不错!


[0] [0] [回复]

回到最上

xqdr   2009/06/26 16:24:31  56楼   举报

经典好书


[0] [0] [回复]

回到最上

a242426   2009/06/26 19:53:20  57楼   举报

楼主 缺少第4、5页 再扫描一下


[0] [0] [回复]

回到最上

hzj629206   2009/06/27 03:09:45  58楼   举报

这种书还是买得好,电子的怎么看啊.


[0] [0] [回复]

回到最上

254009604   2009/06/29 22:12:29  59楼   举报

谢谢分享中文版~


[0] [0] [回复]

回到最上

232817042   2009/06/30 02:19:11  60楼   举报

THANKSSSSSSSSSSSSSSSSSSSSSSSS


[0] [0] [回复]

回到最上

afalon   2009/06/30 11:56:01  61楼   举报

虽然感觉看上去不是太清楚,不过还是下载来看!感谢分享啊!找了很久了


[0] [0] [回复]

回到最上

yangjia448   2009/06/30 22:10:45  62楼   举报

谢谢分享~~应该有用~~~


[0] [0] [回复]

回到最上

zyqcome   2009/07/01 07:39:37  63楼   举报

谢谢楼主分享


[0] [0] [回复]

回到最上

z_y_zhanghua   2009/07/02 11:00:56  64楼   举报

引用(小丫工作室 @ 2009-06-22, 09:29 AM) *
第183页可以看到扫描到的楼主的手掌。楼主你肤色很红润啊,嘻嘻happy.gif

那么隐蔽的一条都可以看出来,您真行。


[0] [0] [回复]

回到最上

martianliu   2009/07/02 23:01:15  65楼   举报

好东西,收下了


[0] [0] [回复]

回到最上

qiwang06   2009/07/05 09:46:30  66楼   举报

挺搞笑的!


[0] [0] [回复]

回到最上

gotoliuchao   2009/07/05 10:06:04  67楼   举报

楼主,我一般下载东西部登陆,可是你发的这个东西真的是太好了。所以必须来顶你一下。

我也曾经用扫描仪扫描过书籍,知道那个累啊,完全是为了共享啊,谢谢你啊。有好报!!


[+2] [0] [回复]

回到最上

yels123   2009/07/08 17:53:44  68楼   举报

学无止境。


[0] [0] [回复]

回到最上

msphell   2009/07/10 11:41:38  69楼   举报

非常的感觉,支持。


[0] [0] [回复]

回到最上

寂静的春天   2009/07/14 08:54:14  70楼   举报

楼主大大您辛苦了!


[0] [0] [回复]

回到最上

baoyinbatu   2009/07/14 09:14:47  71楼   举报

thanks!


[0] [0] [回复]

回到最上

WHOIHI   2009/07/14 09:17:17  72楼   举报

非常的感觉,支持。


[0] [0] [回复]

回到最上

dadi626   2009/07/14 12:56:03  73楼   举报

哈哈…


[0] [0] [回复]

回到最上

w_sabre   2009/07/16 16:00:45  74楼   举报

好东西!正想网上买呢


[0] [0] [回复]

回到最上

happy_xyz001   2009/07/16 19:11:14  75楼   举报

好东西,非常感谢楼主的辛勤劳动


[0] [0] [回复]

回到最上

8月末的阳光   2009/07/19 10:37:18  76楼   举报

前几天下载的 很感兴趣


[0] [0] [回复]

回到最上

vicysunnie   2009/07/19 15:05:41  77楼   举报

引用(小丫工作室 @ 2009-06-22, 09:29 AM) *
第183页可以看到扫描到的楼主的手掌。楼主你肤色很红润啊,嘻嘻happy.gif

有意思...好像LZ没说是自己扫的


[0] [0] [回复]

回到最上

nolewei   2009/07/24 15:10:47  78楼   举报

先收藏起来,谢谢了。


[0] [0] [回复]

回到最上

abcwq123   2009/07/25 10:57:32  79楼   举报

这本书我有。讲得有点深


[0] [0] [回复]

回到最上

wubpy   2009/07/25 16:19:07  80楼   举报

赞一个!


[0] [0] [回复]

回到最上

soar817   2009/07/29 17:01:47  81楼   举报

封面设计像n年以前的书 下来做对比


[0] [0] [回复]

回到最上

solosky   2009/08/08 13:34:52  82楼   举报

这是本好书啊 一定要顶~
对JS提高很有帮助~


[0] [0] [回复]

回到最上

moonseeker   2009/08/09 16:09:12  83楼   举报

好书啊 要学学


[0] [0] [回复]

回到最上

tyhka   2009/08/10 08:29:35  84楼   举报

众里寻它千百日,那书却在电驴网!感谢楼主!!


[+1] [0] [回复]

回到最上

microsoftdu   2009/08/10 09:18:38  85楼   举报

谢谢楼主,下载资源,点击AD,这也是支持VC的一种方式。


[0] [0] [回复]

回到最上

yangyuhi   2009/08/18 15:58:57  86楼   举报

引用(nbkhic @ 2009-06-22, 10:31 PM) *
该书不适合初学者也不适合有完整的面向对象开发基础的同学

JS是基于面向对象的语言,而该书极力将JS描述成完全面向对象的语言,光是其中一些不常见的用法就将人搞得神魂颠倒。

极力不推荐初学者阅读该书,阅读完本书之后你将对JS失去兴趣...

你说的这些话,在一两年前JS框架诞生前还是有道理的,但这些话现在已经没道理了.
你的这种认识(我不是针对你一个人说的)就是大多数国人开发者对javascript的认识,这种认识就导致了javascript只会处于二流的辅助性脚本地位,所以目前流行的JS框架没有一个是国人开发的就是这个道理.
而老外用老掉牙的JS技术开发出现在令大家趋之若鹜的jQuery,Ext,protoType,以致于现在JS基础不好的人学这些框架一直无法精通. 所以为了能掌握这些热门框架,希望大家能借助这本书的机会不仅把JS知识补一补,而且能在认识上进入到一个新的台阶.
顺便说一句,javascript是基于对象的语言,而不是面向对象的语言.一词之差是有本质区别的.基于对象的简称是BO,面向对象的简称是OO.


[0] [0] [回复]

回到最上

yangyuhi   2009/08/18 16:11:09  87楼   举报

引用(小丫工作室 @ 2009-06-23, 08:17 AM) *
引用(nbkhic @ 2009-06-22, 10:31 PM) *
该书不适合初学者也不适合有完整的面向对象开发基础的同学

JS是基于面向对象的语言,而该书极力将JS描述成完全面向对象的语言,光是其中一些不常见的用法就将人搞得神魂颠倒。

极力不推荐初学者阅读该书,阅读完本书之后你将对JS失去兴趣...

谁说JavaScript是基于对象的语言?JavaScript的完整的面向对象的语言,书中介绍的Dojo、Prototype这些类库都是JavaScript的精髓。

javascript确实是基于对象的语言(而不是面向对象的).Dojo,ProtoType不是类库,也不是javascript的精髓,它们是用javascript开发出来的优秀框架.


[+1] [0] [回复]

回到最上

yangyuhi   2009/08/18 16:19:33  88楼   举报

既然无私共享,麻烦就认真一点.楼主是不是把第4第5面给漏扫描了?
汗.


[0] [0] [回复]

回到最上

小丫工作室   2009/08/18 19:10:52  89楼   举报

引用(yangyuhi @ 2009-08-18, 04:11 PM) *
引用(小丫工作室 @ 2009-06-23, 08:17 AM) *
引用(nbkhic @ 2009-06-22, 10:31 PM) *
该书不适合初学者也不适合有完整的面向对象开发基础的同学

JS是基于面向对象的语言,而该书极力将JS描述成完全面向对象的语言,光是其中一些不常见的用法就将人搞得神魂颠倒。

极力不推荐初学者阅读该书,阅读完本书之后你将对JS失去兴趣...

谁说JavaScript是基于对象的语言?JavaScript的完整的面向对象的语言,书中介绍的Dojo、Prototype这些类库都是JavaScript的精髓。

javascript确实是基于对象的语言(而不是面向对象的).Dojo,ProtoType不是类库,也不是javascript的精髓,它们是用javascript开发出来的优秀框架.

嗯,Library和Framework总是分不太清楚,但是jQuery和Dojo应该算是框架,因为他们扩展的JavaScript语言。

Prototype和Dojo还有jQuery之于JavaScript,用“精髓”一词可能不太恰当,我的意思是说JavaScript因为他们而发扬光大,就好像Ruby on Rails之于Ruby一样。

JavaScript是一种基于原型的语言,可以参考:
http://en.wikipedia.org/wiki/Category:Prot...anguages

而“Prototype-based programming is a style of object-oriented programming”,所以JavaScript是一种面向对象的语言。只是基于原型的语言比较特殊,列表里除了JavaScript和相关的ActionScript、JScript、ECMAScript,我就只认识一个Lua了。如果总按照C++、Java等常见OOP语言的思维方式看JavaScript,当然会觉得JavaScript不是面向对象的,然后斥责JavaScript“其中一些不常见的用法就将人搞得神魂颠倒”。

如果总是按照C++、Java的思路,也不会理解函数式编程、闭包这些JavaScript里的东西。而JavaScript并不是什么老掉牙技术,他的思想是和Python和Ruby是一脉相通的,远超过C++和Java。你要是不理解他的思想,那么你就开发不出jQuery、Prototype、Dojo、Yahoo! UI Library、Ext~~


[+1] [0] [回复]

回到最上

csywashington   2009/08/18 22:44:00  90楼   举报

引用(小丫工作室 @ 2009-08-18, 07:10 PM) *
引用(yangyuhi @ 2009-08-18, 04:11 PM) *
引用(小丫工作室 @ 2009-06-23, 08:17 AM) *
引用
部分楼层已被隐藏,点击展开全部

谁说JavaScript是基于对象的语言?JavaScript的完整的面向对象的语言,书中介绍的Dojo、Prototype这些类库都是JavaScript的精髓。

javascript确实是基于对象的语言(而不是面向对象的).Dojo,ProtoType不是类库,也不是javascript的精髓,它们是用javascript开发出来的优秀框架.

嗯,Library和Framework总是分不太清楚,但是jQuery和Dojo应该算是框架,因为他们扩展的JavaScript语言。

Prototype和Dojo还有jQuery之于JavaScript,用“精髓”一词可能不太恰当,我的意思是说JavaScript因为他们而发扬光大,就好像Ruby on Rails之于Ruby一样。

JavaScript是一种基于原型的语言,可以参考:
http://en.wikipedia.org/wiki/Category:Prot...anguages

而“Prototype-based programming is a style of object-oriented programming”,所以JavaScript是一种面向对象的语言。只是基于原型的语言比较特殊,列表里除了JavaScript和相关的ActionScript、JScript、ECMAScript,我就只认识一个Lua了。如果总按照C++、Java等常见OOP语言的思维方式看JavaScript,当然会觉得JavaScript不是面向对象的,然后斥责JavaScript“其中一些不常见的用法就将人搞得神魂颠倒”。

如果总是按照C++、Java的思路,也不会理解函数式编程、闭包这些JavaScript里的东西。而JavaScript并不是什么老掉牙技术,他的思想是和Python和Ruby是一脉相通的,远超过C++和Java。你要是不理解他的思想,那么你就开发不出jQuery、Prototype、Dojo、Yahoo! UI Library、Ext~~


javascript是基于对象。面对对象有三大特性——封装、继承和多态。
javascript没有继承和多态。当然不能算是面对对象。

在JavaScript中,并不直接从文法上支持继承,换句话说,JavaScript没有实现“继承”的语法,从这个意义上来说,JavaScript并不是直接的面向对象的语言。
在JavaScript中,继承是通过模拟的方法来实现的。


[+1] [0] [回复]

回到最上

小丫工作室   2009/08/19 01:26:06  91楼   举报

引用(csywashington @ 2009-08-18, 10:44 PM) *

javascript是基于对象。面对对象有三大特性——封装、继承和多态。
javascript没有继承和多态。当然不能算是面对对象。

在JavaScript中,并不直接从文法上支持继承,换句话说,JavaScript没有实现“继承”的语法,从这个意义上来说,JavaScript并不是直接的面向对象的语言。
在JavaScript中,继承是通过模拟的方法来实现的。

一般程序员都是这样想的,JavaScript有类,但是不支持继承与多态,所以只有封装的语言就不是面向对象的,而是基于对象的。

如果JavaScript没有继承,那么下面的代码:
引用
str = new String();
alert(str instanceof Object); //true

怎么就返回了true了?String不是继承自Object的?子类的对象也是父类的对象嘛。

下面引用一下本帖的图书《精通JavaScript》的一段话:
引用
2.2 面向对象基础
面向对象JavaScript这个词其实有些多余,因为JavaScript这门语言就是完全面向对象的,也不可能以非面向对象的方法来使用。


你说JavaScript没有继承的语法,而继承在JavaScript里是通过模拟的方法实现的,那是因为你用C++和Java的眼光看JavaScript,当然觉得它另类。我再引用《JavaScript语言精髓与编程实践》里的一段话:
引用
3.3 JavaScript中的原型继承
“面向对象”有三个基本特性,即封装,继承和多态。一般来说,三个特性都完全满足的话,我们称为“面向对象语言”,而称满足其中部分特性的语言为“基于对象语言”。
“对象系统”的继承特性,有三种实现方案,包括基于类(class-based),基于原型(prototype-based)和基于元类(metaclass-based)。这三种对象模型各具特色,也各有应用。在这其中,JavaScript没有采用我们常见的类继承体系,而是使用原型继承来实现对象系统。因此JavaScript没有“类(Class)”,而采用一种名为“构造器(Constructor)”的机制来实现类的某些功用。也因此JavaScript被称为“无类语言”。


“面向对象语言”,这里面向的是对象(Object),而不叫“面向类(Class)”,并非只有类才能实现对象,所以从C++、Java的角度看JavaScript,当然觉得它是无法完全实现面向对象的,是残缺的,因为它是没有类(Class)的。

封装、继承、多态,JavaScript都有,所以JavaScript是一个彻头彻尾的,原生的面向对象语言。继承是原型继承,多态则不必说,动态语言怎么会不实现多态。反倒是封装,JavaScript做的不完善,它只能实现public和private,没法实现protected。


[+3] [0] [回复]

回到最上

yangyuhi   2009/08/19 11:44:23  92楼   举报

引用(小丫工作室 @ 2009-08-18, 07:10 PM) *
引用(yangyuhi @ 2009-08-18, 04:11 PM) *
引用(小丫工作室 @ 2009-06-23, 08:17 AM) *
引用
部分楼层已被隐藏,点击展开全部

谁说JavaScript是基于对象的语言?JavaScript的完整的面向对象的语言,书中介绍的Dojo、Prototype这些类库都是JavaScript的精髓。

javascript确实是基于对象的语言(而不是面向对象的).Dojo,ProtoType不是类库,也不是javascript的精髓,它们是用javascript开发出来的优秀框架.

嗯,Library和Framework总是分不太清楚,但是jQuery和Dojo应该算是框架,因为他们扩展的JavaScript语言。

Prototype和Dojo还有jQuery之于JavaScript,用“精髓”一词可能不太恰当,我的意思是说JavaScript因为他们而发扬光大,就好像Ruby on Rails之于Ruby一样。

JavaScript是一种基于原型的语言,可以参考:
http://en.wikipedia.org/wiki/Category:Prot...anguages (http://en.wikipedia.org/wiki/Category:Prototype-based_programming_languages)

而“Prototype-based programming is a style of object-oriented programming”,所以JavaScript是一种面向对象的语言。只是基于原型的语言比较特殊,列表里除了JavaScript和相关的ActionScript、JScript、ECMAScript,我就只认识一个Lua了。如果总按照C++、Java等常见OOP语言的思维方式看JavaScript,当然会觉得JavaScript不是面向对象的,然后斥责JavaScript“其中一些不常见的用法就将人搞得神魂颠倒”。

如果总是按照C++、Java的思路,也不会理解函数式编程、闭包这些JavaScript里的东西。而JavaScript并不是什么老掉牙技术,他的思想是和Python和Ruby是一脉相通的,远超过C++和Java。你要是不理解他的思想,那么你就开发不出jQuery、Prototype、Dojo、Yahoo! UI Library、Ext~~

谢谢回复,这里学习了.


[0] [0] [回复]

回到最上

focus009   2009/08/19 17:44:46  93楼   举报

下来学习 谢谢


[0] [0] [回复]

回到最上

lefan_3www   2009/09/03 17:20:10  94楼   举报

楼上的都说是好书,等我看完了再来回复。


[0] [0] [回复]

回到最上

色阶   2009/09/07 11:44:31  95楼   举报

大家畅所欲言,学术交流。。真挺好的。。谢谢


[+2] [0] [回复]

回到最上

色阶   2009/09/16 08:27:34  96楼   举报

好书一本. 一本好书.楼主好人.谢谢


[+1] [0] [回复]

回到最上

ggff2008   2009/09/25 10:05:24  97楼   举报

好书啊


[0] [0] [回复]

回到最上

jjp124   2009/10/18 10:45:26  98楼   举报

谢谢分享,收藏了,呵呵……


[0] [0] [回复]

回到最上

bin20060407   2009/10/23 00:20:42  99楼   举报

楼主 辛苦了

谢谢你


[0] [0] [回复]

回到最上

ifree0   2009/10/23 22:30:46  100楼   举报

好好来学习啊


[0] [0] [回复]

回到最上

fengqipiaobo   2009/10/26 18:55:00  101楼   举报

支持!下完也不离开!(顺便问下,有没有源码下载的呀!)


[0] [0] [回复]

回到最上

iamgoodworld   2009/10/27 10:45:28  102楼   举报

正需要这方面的书籍,谢谢了。


[0] [0] [回复]

回到最上

aggressive_m   2009/10/27 20:50:01  103楼   举报

谢谢,好书!


[0] [0] [回复]

回到最上

luck5227   2009/10/30 19:57:04  104楼   举报

引用(小丫工作室 @ 2009-08-19, 01:26 AM) *
引用(csywashington @ 2009-08-18, 10:44 PM) *

javascript是基于对象。面对对象有三大特性——封装、继承和多态。
javascript没有继承和多态。当然不能算是面对对象。

在JavaScript中,并不直接从文法上支持继承,换句话说,JavaScript没有实现“继承”的语法,从这个意义上来说,JavaScript并不是直接的面向对象的语言。
在JavaScript中,继承是通过模拟的方法来实现的。

一般程序员都是这样想的,JavaScript有类,但是不支持继承与多态,所以只有封装的语言就不是面向对象的,而是基于对象的。

如果JavaScript没有继承,那么下面的代码:
引用
str = new String();
alert(str instanceof Object); //true

怎么就返回了true了?String不是继承自Object的?子类的对象也是父类的对象嘛。

下面引用一下本帖的图书《精通JavaScript》的一段话:
引用
2.2 面向对象基础
面向对象JavaScript这个词其实有些多余,因为JavaScript这门语言就是完全面向对象的,也不可能以非面向对象的方法来使用。


你说JavaScript没有继承的语法,而继承在JavaScript里是通过模拟的方法实现的,那是因为你用C++和Java的眼光看JavaScript,当然觉得它另类。我再引用《JavaScript语言精髓与编程实践》里的一段话:
引用
3.3 JavaScript中的原型继承
“面向对象”有三个基本特性,即封装,继承和多态。一般来说,三个特性都完全满足的话,我们称为“面向对象语言”,而称满足其中部分特性的语言为“基于对象语言”。
“对象系统”的继承特性,有三种实现方案,包括基于类(class-based),基于原型(prototype-based)和基于元类(metaclass-based)。这三种对象模型各具特色,也各有应用。在这其中,JavaScript没有采用我们常见的类继承体系,而是使用原型继承来实现对象系统。因此JavaScript没有“类(Class)”,而采用一种名为“构造器(Constructor)”的机制来实现类的某些功用。也因此JavaScript被称为“无类语言”。


“面向对象语言”,这里面向的是对象(Object),而不叫“面向类(Class)”,并非只有类才能实现对象,所以从C++、Java的角度看JavaScript,当然觉得它是无法完全实现面向对象的,是残缺的,因为它是没有类(Class)的。

封装、继承、多态,JavaScript都有,所以JavaScript是一个彻头彻尾的,原生的面向对象语言。继承是原型继承,多态则不必说,动态语言怎么会不实现多态。反倒是封装,JavaScript做的不完善,它只能实现public和private,没法实现protected。


长见识了,呵呵~~


[0] [0] [回复]

回到最上


    小贴士:
  1. 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  2. 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  3. 勿催片。请相信驴友们对分享是富有激情的,如果确有更新版本,您一定能搜索到。
  4. 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
  5. 如果您发现自己的评论不见了,请参考以上4条。

(?)

close