随笔分类 -  javascript

摘要:继承机制的实现 要用 ECMAScript 实现继承机制,您可以从要继承的基类入手。所有开发者定义的类都可作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击。 选定基类后,就可以创建它的子类了。是否使用基类完全由你决定。有时,你可能想创建一个不能直接使用的基类,它只是用于给子类提供通用的函数。在这种情况下,基类被看作抽象类... 阅读全文
posted @ 2012-05-03 14:57 校长阿四 阅读(215) 评论(0) 推荐(0)
摘要:继承机制实例 说明继承机制最简单的方式是,利用一个经典的例子 - 几何形状。实际上,几何形状只有两种,即椭圆形(是圆形的)和多边形(具有一定数量的边)。圆是椭圆的一种,它只有一个焦点。三角形、矩形和五边形都是多边形的一种,具有不同数量的边。正方形是矩形的一种,所有的边等长。这就构成了一种完美的继承关系。 在这个例子中,形状(Shape)是椭圆形(Ellipse)和多边形(Polygon)的基类... 阅读全文
posted @ 2012-05-03 14:54 校长阿四 阅读(343) 评论(0) 推荐(0)
摘要:通过使用 ECMAScript,不仅可以创建对象,还可以修改已有对象的行为。 prototype 属性不仅可以定义构造函数的属性和方法,还可以为本地对象添加属性和方法。 创建新方法 通过已有的方法创建新方法 可以用 prototype 属性为任何已有的类定义新方法,就像处理自己的类一样。例如,还记得 Number 类的 toString() 方法吗?如果给它传递参数 16,它将输出十六进制的字符... 阅读全文
posted @ 2012-05-03 14:52 校长阿四 阅读(165) 评论(0) 推荐(0)
摘要:使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象。 ECMAScript 拥有很多创建对象或类的方法。 工厂方式 原始的方式 因为对象的属性可以在对象创建后动态定义,所有许多开发者都在 JavaScript 最初引入时编写类似下面的代码:var oCar = new Object;oCar.color = "blue";oCar.doors = 4;oC... 阅读全文
posted @ 2012-05-03 14:20 校长阿四 阅读(257) 评论(0) 推荐(0)
摘要:作用域指的是变量的适用范围 公用、私有和受保护作用域 概念 在传统的面向对象程序设计中,主要关注于公用和私有作用域。公用作用域中的对象属性可以从对象外部访问,即开发者创建对象的实例后,就可使用它的公用属性。而私有作用域中的属性只能在对象内部访问,即对于外部世界来说,这些属性并不存在。这意味着如果类定义了私有属性和方法,则它的子类也不能访问这些属性和方法。 受保护作用域也是用于定义私有的属性和方法... 阅读全文
posted @ 2012-05-03 09:52 校长阿四 阅读(225) 评论(0) 推荐(0)
摘要:在 ECMAScript 中,所有对象并非同等创建的。 一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象。 本地对象 ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来说,本地对象就是 ECMA-262 定义的类(引用类型)。它们包括: Object Function ... 阅读全文
posted @ 2012-05-03 09:25 校长阿四 阅读(159) 评论(0) 推荐(0)
摘要:对象的创建和销毁都在 JavaScript 执行过程中发生,理解这种范式的含义对理解整个语言至关重要 声明和实例化 对象的创建方式是用关键字 new 后面跟上实例化的类的名字: var oObject = new Object();var oStringObject = new String();第一行代码创建了 Object 类的一个实例,并把它存储到变量 oObject 中。第二行... 阅读全文
posted @ 2012-05-03 09:22 校长阿四 阅读(188) 评论(0) 推荐(0)
摘要:面向对象术语 对象 ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值、对象或函数”。严格来说,这意味着对象是无特定顺序的值的数组。 尽管 ECMAScript 如此定义对象,但它更通用的定义是基于代码的名词(人、地点或事物)的表示。 类 每个对象都由类定义,可以把类看做对象的配方。类不仅要定义对象的接口(interface)(开发者访问的属性和方法)... 阅读全文
posted @ 2012-05-02 22:45 校长阿四 阅读(171) 评论(0) 推荐(0)
摘要:闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。 简单的闭包实例 在 ECMAScript 中使用全局变量是一个简单的闭包实例。请思考下面这段代码: var sMessage = "hello world";function sayHelloWorld() { alert(sMessage);}sayHelloWorld();在上面这段代码中,脚... 阅读全文
posted @ 2012-05-02 21:11 校长阿四 阅读(216) 评论(0) 推荐(0)
摘要:ECMAScript 的函数实际上是功能完整的对象。 Function 对象(类) ECMAScript 最令人感兴趣的可能莫过于函数实际上是功能完整的对象。 Function 类可以表示开发者定义的任何函数。 用 Function 类直接创建函数的语法如下:var function_name = new function(arg1, arg2, ..., argN, function_body... 阅读全文
posted @ 2012-05-02 21:02 校长阿四 阅读(187) 评论(0) 推荐(0)
摘要:arguments 对象 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。 例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于位置 1,依此类推)。 因此,无需明确命名参数,就可以重写函数:function sayHi() { if (ar... 阅读全文
posted @ 2012-05-02 15:04 校长阿四 阅读(175) 评论(0) 推荐(0)
摘要:什么是函数? 函数是一组可以随时随地运行的语句。 函数是 ECMAScript 的核心。 函数是由这样的方式进行声明的:关键字 function、函数名、一组参数,以及置于括号中的待执行代码。 函数的基本语法是这样的:function functionName(arg0, arg1, ... argN) { statements}例如:function sayHi(sName, sMessage... 阅读全文
posted @ 2012-05-02 13:16 校长阿四 阅读(173) 评论(0) 推荐(0)
摘要:有标签的语句 with 语句用于设置代码在特定对象中的作用域。 它的语法: with (expression) statement例如:var sMessage = "hello";with(sMessage) { alert(toUpperCase()); //输出 "HELLO"}在这个例子中,with 语句用于字符串,所以在调用 toUpperCase() 方法时,解释程序将检查该方... 阅读全文
posted @ 2012-05-02 11:44 校长阿四 阅读(113) 评论(0) 推荐(0)
摘要:switch 语句 switch 语句是 if 语句的兄弟语句。 开发者可以用 switch 语句为表达式提供一系列的情况(case)。 switch 语句的语法: switch (expression) case value: statement; break; case value: statement; break; case value: statement; ... 阅读全文
posted @ 2012-05-02 11:44 校长阿四 阅读(213) 评论(0) 推荐(0)
摘要:break 和 continue 语句对循环中的代码执行提供了更严格的控制。 break 和 continue 语句的不同之处 break 语句可以立即退出循环,阻止再次反复执行任何代码。 而 continue 语句只是退出当前循环,根据控制表达式还允许继续进行下一次循环。 例如: var iNum = 0;for (var i=1; i<10; i++) { if (i % 5 ==... 阅读全文
posted @ 2012-05-02 11:42 校长阿四 阅读(276) 评论(0) 推荐(0)
摘要:迭代语句又叫循环语句,声明一组要反复执行的命令,直到满足某些条件为止。 循环通常用于迭代数组的值(因此而得名),或者执行重复的算术任务。 本节为您介绍 ECMAScript 提供的四种迭代语句。 do-while 语句 do-while 语句是后测试循环,即退出条件在执行循环内部的代码之后计算。这意味着在计算表达式之前,至少会执行循环主体一次。 它的语法如下: do {statemen... 阅读全文
posted @ 2012-05-02 11:40 校长阿四 阅读(190) 评论(0) 推荐(0)
摘要:有标签的语句 可以用下列语句给语句加标签,以便以后调用: label : statement例如:start : i = 5;在这个例子中,标签 start 可以被之后的 break 或 continue 语句引用。提示:在下面的章节,我们将为您介绍 break 和 continue 语句。 阅读全文
posted @ 2012-05-02 11:40 校长阿四 阅读(131) 评论(0) 推荐(0)
摘要:if 语句是 ECMAScript 中最常用的语句之一。 ECMAScript 语句 ECMA - 262 描述了 ECMAScript 的几种语句(statement)。 语句主要定义了 ECMAScript 的大部分语句,通常采用一个或多个关键字,完成给定的任务。 语句可以非常简单,例如通知函数退出,也可以非常复杂,如声明一组要反复执行的命令。 在《ECMAScript 语句》这一章... 阅读全文
posted @ 2012-05-02 11:39 校长阿四 阅读(190) 评论(0) 推荐(0)
摘要:逗号运算符 用逗号运算符可以在一条语句中执行多个运算。 例如: var iNum1 = 1, iNum = 2, iNum3 = 3;逗号运算符常用变量声明中。 阅读全文
posted @ 2012-05-02 11:39 校长阿四 阅读(126) 评论(0) 推荐(0)
摘要:条件运算符 条件运算符是 ECMAScript 中功能最多的运算符,它的形式与 Java 中的相同。 variable = boolean_expression ? true_value : false_value;该表达式主要是根据 boolean_expression 的计算结果有条件地为变量赋值。如果 Boolean_expression 为 true,就把 true_value 赋给变... 阅读全文
posted @ 2012-05-02 11:38 校长阿四 阅读(205) 评论(0) 推荐(0)