function Circle (xPoint, yPoint, radius) {
this.x = xPoint; // 圆心的 x 坐标。
this.y = yPoint; // 圆心的 y 坐标。
this.r = radius; // 圆的半径。
}
var aCircle = new Circle(5, 11, 99);
在编写构造函数时,可以使用原型对象(它本身是所有构造函数的一个属性)的属性来创建继承属性和共享方法。原型属性和方法将按引用复制给类中的每个对象,因此它们都具有相同的值。可以在一个对象中更改原型属性的值,新的值将覆盖默认值,但仅在该实例中有效。属于这个类的其他对象不受此更改的影响。下面给出了使用自定义构造函数的示例,Circle(注意this 关键字的使用)。
Circle.prototype.pi = Math.PI;
function ACirclesArea () {
return this.pi * this.r * this.r; // 计算圆面积的公式为 ?r2。
}
Circle.prototype.area = ACirclesArea; // 计算圆面积的函数现在是 Circle Prototype 对象的一个方法。
var a = ACircle.area(); // 此为如何在 Circle 对象上调用面积函数。
使用这个原则,可以给预定义的构造函数(都具有原型对象)定义附加属性。例如,如果想要能够删除字符串的前后空格(与 VBScript 的 Trim 函数类似),就可以给String 原型对象创建自己的方法。
// 增加一个名为 trim 的函数作为
// String 构造函数的原型对象的一个方法。
String.prototype.trim = function()
{
// 用正则表达式将前后空格
// 用空字符串替代。
return this.replace(/(^\s*)|(\s*$)/g, "");
}
// 有空格的字符串
var s = " leading and trailing spaces ";
// 显示 " leading and trailing spaces (35)"
window.alert(s + " (" + s.length + ")");
// 删除前后空格
s = s.trim();
// 显示"leading and trailing spaces (27)"
window.alert(s + " (" + s.length + ")");
Numbers 和 Boolean 类型的值 ( true 和 false) 是按值来复制、传递和比较的。
对象、数组以及函数是按引用来复制、传递和比较的。
当按引用比较时,要想比较成功,两个变量必须参照完全相同的实体。例如,两个不同的 Array 对象即使包含相同的元素也将比较为不相等。要想比较成功,其中一个变量必须为另一个的参考。要想检查两个数组是否包含了相同的元素,比较toString() 方法的结果。
最后,字符串是按引用复制和传递的,但是是按值来比较的。请注意,假如有两个 String 对象(用 new String("something") 创建的),按引用比较它们,但是,如果其中一个或者两者都是字符串值的话(string1="hello"这样),按值比较它们。基础篇里面有代码。
通常,使用点运算符“.”访问对象的属性。
例如,
myObject.aProperty
在这里,属性名称是一个标识符。也可以用索引运算符“[]”访问对象的属性。在这里,是把对象看作一个关联数组。关联数组是一种数据结构,它可以动态地将任意的数据的值与任意的字符串相关联。例如,
myObject["aProperty"] // 与上面相同。
运算符 | 属性名称作为 | 对属性名称的处理 |
---|---|---|
点“.” | 标识符 | 不能作为数据处理 |
索引“[]” | 字符串文字 | 能被作为数据处理 |
要想从一个关联数组提取所有的属性,必须用 for … in 循环。
JScript 是一种具有自动强制的自由类型语言。因此,尽管实际上不同类型的值是不相等的,但对下述示例中的表达式求值都将得到 true。
"100" == 100;
false == 0;
要核对类型与值都一致,用“严格相等”运算符(===)。下面两个表达式的值为 false:
"100" === 100;
false === 0;
显示信息:
document.write(),document.writeln(),
警告消息框
alert("欢迎!请按“确定”继续。");
确认消息框
var truthBeTold = window.confirm("单击“确定”继续。单击“取消”停止。"); if (truthBeTold) { window.alert("欢迎访问我们的 Web 页!"); } else window.alert("再见啦!");
消息提示框
var theResponse = window.prompt("欢迎?","请在此输入您的姓名。");
document 对象的 clear() 方法将清空当前文档。该方法也将清除您的脚本(随文档的其他部分一起),因此要特别注意该方法的使用方式及在什么时候使用该方法。
document.clear();