JavaScript面向对象编程指南

JavaScript面向对象编程指南

编写可扩展、可重用、高质量的JavaScript应用程序

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。

作品简介

JavaScript作为一门浏览器语言的核心思想;面向对象编程的基础知识及其在JavaScript中的运用;数据类型、操作符以及流程控制语句;函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript语言特有的优势;如何应用设计模式解决常见问题等。

本书着重介绍JavaScript在面向对象方面的特性,展示如何构建强健的、可维护的、功能强大的应用程序及程序库。

Stoyan Stefanov:雅虎公司的Web开发人员、Zend认证工程师。他经常会在其博客(www.phpied.com)与一些相关会议中就JavaScript、PHP等Web开发话题发表独到见解。他还独自运营着其他一些网站,其中包括JSPatterns.com—一个用于探讨JavaScript模式的网站。除此之外,Stoyan还是雅虎性能优化工具的项目领导人,同时参与了多个开源项目,例如Firebug和PEAR。

Stoyan是一位“世界公民”,出生并成长于保加利亚,但却是一个加拿大公民,现居住于美国加利福尼亚州的洛杉矶。在短暂的线下时间里,他喜欢弹吉他,与家人一起去圣莫尼卡海滩或待在游泳池边。

作品目录

  1. 内容提要
  2. 译者序
  3. 前言
  4. 作者简介
  5. 审阅者简介
  6. 第1章 引言
  7. 1.1 回顾历史
  8. 1.2 变革之风
  9. 1.3 分析现状
  10. 1.4 展望未来
  11. 1.5 面向对象的程序设计
  12. 1.6 OOP概述
  13. 1.7 训练环境设置
  14. 1.8 使用 Firebug控制台
  15. 1.9 本章小结
  16. 第2章 基本数据类型、数组、循环及条件表达式
  17. 2.1 变量
  18. 2.2 操作符
  19. 2.3 基本数据类型
  20. 2.4 基本数据类型综述
  21. 2.5 数组
  22. 2.6 条件与循环
  23. 2.7 注释
  24. 2.8 本章小结
  25. 2.9 练习题
  26. 第3章 函数
  27. 3.1 什么是函数
  28. 3.2 预定义函数
  29. 3.3 变量的作用域
  30. 3.4 函数也是数据
  31. 3.5 闭包
  32. 3.6 本章小结
  33. 3.7 练习题
  34. 第4章 对象
  35. 4.1 从数组到对象
  36. 4.2 内建对象
  37. 4.3 本章小结
  38. 4.4 练习题
  39. 第5章 原型
  40. 5.1 原型属性
  41. 5.2 扩展内建对象
  42. 5.3 本章小结
  43. 5.4 练习题
  44. 第6章 继承
  45. 6.1 原型链
  46. 6.2 只继承于原型
  47. 6.3 uber——子对象访问父对象的方式
  48. 6.4 将继承部分封装成函数
  49. 6.5 属性拷贝
  50. 6.6 小心处理引用拷贝
  51. 6.7 对象之间的继承
  52. 6.8 深拷贝
  53. 6.9 object()
  54. 6.10 原型继承与属性拷贝的混合应用
  55. 6.11 多重继承
  56. 6.12 寄生式继承
  57. 6.13 构造器借用
  58. 6.14 本章小结
  59. 6.15 案例学习:图形绘制
  60. 6.15.1 分析
  61. 6.15.2 实现
  62. 6.15.3 测试
  63. 6.16 练习题
  64. 第7章 浏览器环境
  65. 7.1 在 HTML页面中引入 JavaScript代码
  66. 7.2 概述:BOM与 DOM
  67. 7.3 BOM
  68. 7.4 DOM
  69. 7.5 事件
  70. 7.6 XMLHttpRequest对象
  71. 7.7 本章小结
  72. 7.8 练习题
  73. 第8章 编程模式与设计模式
  74. 8.1 编程模式
  75. 8.2 设计模式
  76. 8.3 本章小结
  77. 附录A 保留字
  78. 附录B 内建函数
  79. 附录C 内建对象
  80. 附录D 正则表达式

热门划线

  1. 另外,任何数除0也为infinity:2 人
  2. >>> var s = '1'; s++; typeof s;2 人
  3. 于是,将数字字符串转换为数字就有了一种偷懒的方法:只需将该字符串与1相乘即可。(当然,更好的选择是调用parseInt函数2 人
  4. 如果 JavaScript 引擎在一个逻辑表达式中遇到一个非布尔类型的操作数,那么该操作数的值就会成为该表达式所返回的结果2 人
  5. i] = (function(x){return function(){return x;}})(i);2 人
  6. 最佳做法提示:尽量别使用引号1.尽量使用点号表示法来访问对象的方法与属性。2.不要在对象中使用带引号的属性标识。2 人
  7. 当我们引用this值时,实际上所引用的就是“这个对象”或者“当前对象”。2 人
  8. 内建对象大致上可以分为三个组:2 人
  9. valueOf()方法也是一个所有的对象所共有的方法。对于简单的对象来说(即构造器是Object的对象),valueOf()方法返回的就是对象自己。2 人
  10. 每个函数中都有一个prototype属性,该属性所存储的就是原型对象。2 人
  11. function Gadget(name, color) {this.name = name;this.color = color;this.whatAreYou = function(){return 'I am a ' + this.color + ' ' + this.name;2 人
  12. 这一回它找不到一个叫rating的属性了。接下来,脚本引擎就会去查询用于创建当前对象的构造器函数的原型(等价于我们直接访问 newtoy.constructor. prototype)。如果在原型中找到了该属性,就立即使用该属性。2 人
  13. 那些已经被显示的属性被称为是可枚举的,我们可以通过各个对象所提供的 propertyIsEnumerable()方法来判断其中有哪些可枚举的属性。2 人
  14. 原型链中的各个原型属性也会被显示出来,当然前提是它们是可枚举的。我们可以通过对象的 hasOwnProperty()方法来判断一个属性是对象自身属性还是原型属性。2 人
  15. propertyIsEnumerable(),该方法会对所有的非内建对象属性返回true2 人
  16. 每个对象中都会有一个isPrototypeOf()方法,这个方法会告诉我们当前对象是否是另一个对象的原型。2 人
  17. sult[result.length] = this.constructor.uber.toString();2 人