`
vowtree
  • 浏览: 34573 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JavaScript 高级程序设计 对象基础

阅读更多

1. 一个完整的JavaScript实现的3个不同组成部分

    核心(ECMAScript)

    文档对象模型(DOM)

    浏览器对象模型(BOM)

 

2. ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力,是与任何特定的宿主环境分开进行规定的。

    个人理解:跨浏览器

    ECMAScript 仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。其他的语言可以实现ECMAScript来作为

功能的基准。每个浏览器都有它自己的ECMAScript接口的实现。

 

3. DOM是HTML和XML的应用程序接口API。DOM将整个页面规划成由节点层级构成的文档。

DOM通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。用DOM API可以轻松的删除、添加和替换节点。

 

4. BOM可以对浏览器窗口进行访问和操作。开发者可以移动窗口。改变状态栏中的文字以及执行其他与页面内容不直接相关的内容。

 

5.ECMAScript的5种原始类型:

   Undefined   变量未初始化 或 未声明的变量 或 函数没有返回值

   Null             undefined实际上是从值null派生来的    null ==undefined  为true

   Boolean      

 

6. 不能文的规约: 用单下划线说明私有成员  例如obj._color 

7. 关键字总是指向调用该方法的对象。

 

function showColor()

                {

                    alert(this.color);

                }

 

                var oCar=new Object;

                oCar.color="red"; 相当于增加一个public的成员变量

                oCar.shoColor=showColor;     相当于增加一个public的成员函数

 

                var oCar2=new Object;

                oCar2.color="blue";

                oCar2.shoColor=showColor;

 

                oCar.shoColor();

                oCar2.shoColor();

 

8.  构造函数的方式    

 

function Car(sColor,iDoors,iMpg){

                    this.color=sColor;

                    this.doors=iDoors;

                    this.mpg=iMpg;

                    this.showColor=function (){

                        alert(this.color);

                    }

                }

 

                var car1= new Car("red",4,23);

                var car2= new Car("blue",3,25);

                car1.showColor();

                car2.showColor();

构造函数内部无创建对象。使用new运算符调用构造函数时,在执行第一行代码前先创建一个对象,只有用this才能访问该对象,然后直接赋予this属性,默认情况下是构造函数的返回值。不必明确使用return运算符。

缺陷:为每个对象创建独立的函数版本。

 

9. 原型方式

 

function Car()

                {

 

                }

                Car.prototype.color="red";

                Car.prototype.doors=4;

                Car.prototype.mpg=23;

                Car.prototype.showColor=function (){

                    alert(this.color);

                }

 

                var car1=new Car();

                car1.showColor();

                var car2=new Car();

                car2.showColor();

缺陷:构造函数没有参数。当属性指向的是对象,而不是函数是,改变对象,另一个也会受影响

 

10. 混合的构造函数/原型方式

 

 function Car(sColor,iDoors,iMpg)

                {

                    this.color=sColor;

                    this.doors=iDoors;

                    this.mpg=iMpg;

                    this.drivers= new Array("Mike","Sue");

                }               

                Car.prototype.showColor=function (){

                    alert(this.color);

                }

 

                var car1= new Car("red",4,23);

                var car2= new Car("blue",3,25);

                car1.drivers.push("Matt");

                alert(car1.drivers);

                alert(car2.drivers);

用构造函数定义对象的所有非函数属性,用原型方式定义对象的函数属性。则所有对象只创建一次,而每个对象都具有自己的对象属性实例。

缺陷:在构造函数内找属性,在构造函数外找方法的做法不合理

 

11. 动态原型方法

 

function Car(sColor,iDoors,iMpg)

                {

                    this.color=sColor;

                    this.doors=iDoors;

                    this.mpg=iMpg;

                    this.drivers= new Array("Mike","Sue");

 

                    if(typeof Car._initialized=="undefined"){

                        Car.prototype.showColor=function (){

                            alert(this.color);

                        }

                        Car._initialized=true;

                    }

                } 

 

12. 可以用prototype属性为任何已有的类定义新方法,就像处理自己的类一样。

      如果想给每个本地对象添加新方法,必须在Object对象的prototype属性上定义它。

      Object.prototype.showValue=function (){

              alert(this.valueOf());                           

      }

 

分享到:
评论

相关推荐

    JavaScript高级程序设计第3版带书签中文完整版文字版

    《JavaScript高级程序设计(第3版)》主要内容包括:  对JavaScript实现各个组成部分的详尽解读;  对JavaScript面向对象编程的全方位阐述;  对DOM、BOM及浏览器事件模型的透彻剖析;  Web应用基本数据格式JSON...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版.part1.rar

     2.5.1 为什么需要JavaScript日志对象   2.5.2 myLogger()对象   2.6 小结   第3章 DOM2核心和DOM2 HTML   3.1 DOM不是JavaScript,它是文档   3.2 DOM的级别   3.2.1 DOM 0 级   3.2.2 ...

    【JavaScript源代码】JavaScript高级程序设计之基本引用类型.docx

    JavaScript高级程序设计之基本引用类型  目录 1、Date2、RegExp3、原始包装类型 1、Date 2、RegExp 3、原始包装类型 前言: 引用值(对象)都是某个特定的引用类型的实例对象,例如 Date类型、Function类型,...

    JavaScript高级程序设计中提到的方法---自己整理

    自己在看书或实践中整理的文档,文档中包括事件对象与匿名函数等问题...

    【JavaScript源代码】JavaScript高级程序设计之变量与作用域.docx

    JavaScript高级程序设计之变量与作用域  目录 1、原始值与引用值2、instanceof3、作用域 1、原始值与引用值 2、instanceof 3、作用域 1、原始值与引用值 6种简单数据类型的值都是原始值, 原始值通过变量赋值...

    JavaScript程序设计课件:Math对象.pptx

    JavaScript程序设计 Math对象 6.4.3 Math对象 1、创建Math对象 在JavaScript 中的基本数值运算符可以用来进行一些简单的数学计算,而使用Math 对象可以进行更多的高级运算,如平方根、三角函数、对数和随机数等,与...

    JavaScript 高级程序设计

    本书是一本注重实践的教程,将带领读者循序渐进地探寻javascript使用。 本书的读者对象为前端工程师、网页开发人员。

    javascript高级教程.pdf

    第1 章 JavaScript 基 础 1.1 关 于JavaScript 1.2 了 解JavaScript 1.3 World Wide Web 1.4 Web 应用程序结构 1.5 JavaScript 与VBScript 第2 章 JavaScript 与HTML 2.6 HTML 基 础 2.7 在HTML 文档中嵌入...

    [JavaScript.DOM高级程序设计](加)桑贝斯.扫描版+源码

    使用for(i in item)方法操作类似数组而又不是数组的对象时一定要格外小心,如果对象的属性和方法是非继承的,那么hasOwnProperty()方法返回true,即这里的检查不涉及从其他对象继承的属性和方法,只会检查在特定对象...

    JavaScript DOM高级程序设计 Part I

    JavaScript DOM高级程序设计 JavaScript进阶/写库必备。文档带有章节目录。 第一章 遵循最佳实践 第二章 创建可重用的对象 第三章 DOM2核心和DOM2 HTML 第四章 响应用户操作事件 第五章 动态修改样式和层叠样式表 第...

    js高级程序设计第三版

    javascript高级程序设计第三版高清pdf。全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas...

    JavaScript权威指南(第4版)

    《JavaScript权威指南》全面介绍了...本书还包括详细的参考手册,涵盖了JavaScript的核心API、遗留的客户端API和W3C标准DOM API,记述了这些API中的每一个JavaScript对象、方法、性质、构造函数、常量和事件处理程序

    JavaScript DOM高级程序设计 Part II

    JavaScript DOM高级程序设计 JavaScript进阶/写库必备。文档带有章节目录。 第一章 遵循最佳实践 第二章 创建可重用的对象 第三章 DOM2核心和DOM2 HTML 第四章 响应用户操作事件 第五章 动态修改样式和层叠样式表 第...

    JavaScript高级程序设计 阅读笔记(十三) js定义类或对象

    js定义类或对象的介绍,需要的朋友可以参考下

    JavaScript 高级程序设计非扫描版

    全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位、...

    javascript高级教程

    《JavaScript高级程序设计(第3版)》是JavaScript超级畅销书的最新版。ECMAScript 5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性。...

    Java Script高级程序设计

    第3章 对象基础 第4章 继承 第5章 浏览器中的JavaScript 第6章 DOM基础 第7章 正则表达式 第8章 检测浏览器和操作系统 第9章 事件 第10章 高级DOM技术 第11章 表单和数据完整性 第12章 表格排序 第13章 拖放 第14章 ...

    JavaScript高级程序设计(第三版)学习笔记1~5章

    第2章,在html中使用JavaScript Html引入外部js脚本 [removed]两个[removed]之间不应放脚本,因为并不会被执行[removed] [removed]标签有一个defer属性可以延迟脚本执行,但是并不保证会按脚本排列顺序执行 ...

    javascript面向对象程序设计高级特性经典教程(值得收藏).docx

    javascript面向对象程序设计高级特性经典教程(值得收藏).docx

    Javascript 高级编程第2版PDF part1

    从最佳编程实践到即将成为现实的api,直至javascript未来的发展,全景式地展示了javascript高级程序设计的方方面面。 本书适合不同层次的javascript/web开发人员阅读参考,也可作为高校相关专业课程的教材。

Global site tag (gtag.js) - Google Analytics