继承机制的实现要用 ECMAScript 实现继承机制,您可以从要继承的基类入手。所有开发者定义的类都可作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击。选定基类...
本节使用一个经典的例子解释 ECMAScript 的继承机制。继承机制实例说明继承机制最简单的方式是,利用一个经典的例子 - 几何形状。实际上,几何形状只有两种,即椭圆形(是圆形的)和多边形(具有一定数量的边)。圆是椭圆的一种,它只有一个焦点。...
通过使用 ECMAScript,不仅可以创建对象,还可以修改已有对象的行为。prototype 属性不仅可以定义构造函数的属性和方法,还可以为本地对象添加属性和方法。创建新方法通过已有的方法创建新方法可以用 prototype 属性为任何已有的类定义新方法,就...
使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象。ECMAScript 拥有很多创建对象或类的方法。工厂方式原始的方式因为对象的属性可以在对象创建后动态定义,所有许多开发者都在 JavaScript 最初引入时...
作用域指的是变量的适用范围。公用、私有和受保护作用域概念在传统的面向对象程序设计中,主要关注于公用和私有作用域。公用作用域中的对象属性可以从对象外部访问,即开发者创建对象的实例后,就可使用它的公用属性。而私有作用域中的属性只能在对...
在 ECMAScript 中,所有对象并非同等创建的。一般来说,可以创建并使用的对象有三种:本地对象、内置对象和宿主对象。本地对象ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来说,本地对象就...
对象的创建和销毁都在 JavaScript 执行过程中发生,理解这种范式的含义对理解整个语言至关重要。声明和实例化对象的创建方式是用关键字 new 后面跟上实例化的类的名字:var oObject = new Object();var oStringObject = new String();第一行代...
面向对象术语对象ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值、对象或函数”。严格来说,这意味着对象是无特定顺序的值的数组。尽管 ECMAScript 如此定义对象,但它更通用的定义是基于代码的名词(人、地点或事物)...
ECMAScript 最易让人误解的一点是,它支持闭包(closure)。闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。简单的闭包实例在 ECMAScript 中使用全局变量是一个简单的闭包实例。请思考下面这段代码:...
ECMAScript 的函数实际上是功能完整的对象。Function 对象(类)ECMAScript 最令人感兴趣的可能莫过于函数实际上是功能完整的对象。Function 类可以表示开发者定义的任何函数。用 Function 类直接创建函数的语法如下:var function_name = new ...
arguments 对象在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们。例如,在函数 sayHi() 中,第一个参数是 message。用 arguments[0] 也可以访问这个值,即第一个参数的值(第一个参数位于位置 0,第二个参数位于...
什么是函数?函数是一组可以随时随地运行的语句。函数是 ECMAScript 的核心。函数是由这样的方式进行声明的:关键字 function、函数名、一组参数,以及置于括号中的待执行代码。函数的基本语法是这样的:function functionName(arg0, arg1, ......
switch 语句switch 语句是 if 语句的兄弟语句。开发者可以用 switch 语句为表达式提供一系列的情况(case)。switch 语句的语法:switch (expression) case value: statement; break; case value: statement; break; case value: ...
有标签的语句with 语句用于设置代码在特定对象中的作用域。它的语法:with (expression) statement例如:var sMessage = "hello";with(sMessage) { alert(toUpperCase()); //输出 "HELLO"}在这个例子中,with 语句用于字符串,所以在调用 to...
break 和 continue 语句对循环中的代码执行提供了更严格的控制。break 和 continue 语句的不同之处break 语句可以立即退出循环,阻止再次反复执行任何代码。而 continue 语句只是退出当前循环,根据控制表达式还允许继续进行下一次循环。例如:v...
有标签的语句可以用下列语句给语句加标签,以便以后调用:label : statement例如:start : i = 5;在这个例子中,标签 start 可以被之后的 break 或 continue 语句引用。提示:在下面的章节,我们将为您介绍 break 和 continue 语句。
迭代语句又叫循环语句,声明一组要反复执行的命令,直到满足某些条件为止。循环通常用于迭代数组的值(因此而得名),或者执行重复的算术任务。本节为您介绍 ECMAScript 提供的四种迭代语句。do-while 语句do-while 语句是后测试循环,即退出条件...
if 语句是 ECMAScript 中最常用的语句之一。ECMAScript 语句ECMA - 262 描述了 ECMAScript 的几种语句(statement)。语句主要定义了 ECMAScript 的大部分语句,通常采用一个或多个关键字,完成给定的任务。语句可以非常简单,例如通知函数退出...
逗号运算符用逗号运算符可以在一条语句中执行多个运算。例如:var iNum1 = 1, iNum = 2, iNum3 = 3;逗号运算符常用变量声明中。
赋值运算符简单的赋值运算符由等号(=)实现,只是把等号右边的值赋予等号左边的变量。例如:var iNum = 10;复合赋值运算是由乘性运算符、加性运算符或位移运算符加等号(=)实现的。这些赋值运算符是下列这些常见情况的缩写形式:var iNum = 10;...
条件运算符条件运算符是 ECMAScript 中功能最多的运算符,它的形式与 Java 中的相同。variable = boolean_expression ? true_value : false_value;该表达式主要是根据 boolean_expression 的计算结果有条件地为变量赋值。如果 Boolean_expr...
判断两个变量是否相等是程序设计中非常重要的运算。在处理原始值时,这种运算相当简单,但涉及对象,任务就稍有点复杂。ECMAScript 提供了两套等性运算符:等号和非等号用于处理原始值,全等号和非全等号用于处理对象。等号和非等号在 ECMAScript...
关系运算符执行的是比较运算。每个关系运算符都返回一个布尔值。常规比较方式关系运算符小于、大于、小于等于和大于等于执行的是两个数的比较运算,比较方式与算术比较运算相同。每个关系运算符都返回一个布尔值:var bResult1 = 2 > 1 //truevar...
在多数程序设计语言中,加性运算符(即加号或减号)通常是最简单的数学运算符。在 ECMAScript 中,加性运算符有大量的特殊行为。加法运算符法运算符由加号(+)表示:var iResult = 1 + 2与乘性运算符一样,在处理特殊值时,ECMAScript 中的加法...
ECMAScript 的乘性运算符与 Java、C、Perl 等于语言中的同类运算符的运算方式相似。需要注意的是,乘性运算符还具有一些自动转换功能。乘法运算符乘法运算符由星号(*)表示,用于两数相乘。ECMAScript 中的乘法语法与 C 语言中的相同:var iRes...
Boolean 运算符非常重要,它使得程序语言得以正常运行。Boolean 运算符有三种:NOT、AND 和 OR。ToBoolean 操作在学习各种逻辑运算符之前,让我们先了解一下 ECMAScript-262 v5 规范中描述的 ToBoolean 操作。抽象操作 ToBoolean 将其参数按照...
位运算符是在数字底层(即表示数字的 32 个数位)进行操作的。重温整数ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢?有符号...
一元运算符只有一个参数,即要操作的对象或值。它们是 ECMAScript 中最简单的运算符。deletedelete 运算符删除对以前定义的对象属性或方法的引用。例如:var o = new Object;o.name = "David";alert(o.name); //输出 "David"delete o.name;al...
引用类型通常叫做类(class)。本教程会讨论大量的 ECMAScript 预定义引用类型。引用类型引用类型通常叫做类(class),也就是说,遇到引用值,所处理的就是对象。本教程会讨论大量的 ECMAScript 预定义引用类型。从现在起,将重点讨论与已经讨论...
所有程序设计语言最重要的特征之一是具有进行类型转换的能力。ECMAScript 给开发者提供了大量简单的类型转换方法。大部分类型具有进行简单转换的方法,还有几个全局方法可以用于更复杂的转换。无论哪种情况,在 ECMAScript 中,类型转换都是简短的...