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实现各个组成部分的详尽解读; 对JavaScript面向对象编程的全方位阐述; 对DOM、BOM及浏览器事件模型的透彻剖析; Web应用基本数据格式JSON...
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高级程序设计之基本引用类型 目录 1、Date2、RegExp3、原始包装类型 1、Date 2、RegExp 3、原始包装类型 前言: 引用值(对象)都是某个特定的引用类型的实例对象,例如 Date类型、Function类型,...
自己在看书或实践中整理的文档,文档中包括事件对象与匿名函数等问题...
JavaScript高级程序设计之变量与作用域 目录 1、原始值与引用值2、instanceof3、作用域 1、原始值与引用值 2、instanceof 3、作用域 1、原始值与引用值 6种简单数据类型的值都是原始值, 原始值通过变量赋值...
JavaScript程序设计 Math对象 6.4.3 Math对象 1、创建Math对象 在JavaScript 中的基本数值运算符可以用来进行一些简单的数学计算,而使用Math 对象可以进行更多的高级运算,如平方根、三角函数、对数和随机数等,与...
本书是一本注重实践的教程,将带领读者循序渐进地探寻javascript使用。 本书的读者对象为前端工程师、网页开发人员。
第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 文档中嵌入...
使用for(i in item)方法操作类似数组而又不是数组的对象时一定要格外小心,如果对象的属性和方法是非继承的,那么hasOwnProperty()方法返回true,即这里的检查不涉及从其他对象继承的属性和方法,只会检查在特定对象...
JavaScript DOM高级程序设计 JavaScript进阶/写库必备。文档带有章节目录。 第一章 遵循最佳实践 第二章 创建可重用的对象 第三章 DOM2核心和DOM2 HTML 第四章 响应用户操作事件 第五章 动态修改样式和层叠样式表 第...
javascript高级程序设计第三版高清pdf。全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas...
《JavaScript权威指南》全面介绍了...本书还包括详细的参考手册,涵盖了JavaScript的核心API、遗留的客户端API和W3C标准DOM API,记述了这些API中的每一个JavaScript对象、方法、性质、构造函数、常量和事件处理程序
JavaScript DOM高级程序设计 JavaScript进阶/写库必备。文档带有章节目录。 第一章 遵循最佳实践 第二章 创建可重用的对象 第三章 DOM2核心和DOM2 HTML 第四章 响应用户操作事件 第五章 动态修改样式和层叠样式表 第...
js定义类或对象的介绍,需要的朋友可以参考下
全书从 JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向 对象编程、Ajax 与 Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括 WebGL)及 Web Workers、 地理定位、...
《JavaScript高级程序设计(第3版)》是JavaScript超级畅销书的最新版。ECMAScript 5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性。...
第3章 对象基础 第4章 继承 第5章 浏览器中的JavaScript 第6章 DOM基础 第7章 正则表达式 第8章 检测浏览器和操作系统 第9章 事件 第10章 高级DOM技术 第11章 表单和数据完整性 第12章 表格排序 第13章 拖放 第14章 ...
第2章,在html中使用JavaScript Html引入外部js脚本 [removed]两个[removed]之间不应放脚本,因为并不会被执行[removed] [removed]标签有一个defer属性可以延迟脚本执行,但是并不保证会按脚本排列顺序执行 ...
javascript面向对象程序设计高级特性经典教程(值得收藏).docx
从最佳编程实践到即将成为现实的api,直至javascript未来的发展,全景式地展示了javascript高级程序设计的方方面面。 本书适合不同层次的javascript/web开发人员阅读参考,也可作为高校相关专业课程的教材。