JavaScript中的高级特性及特别对象(2)

2008-02-23 07:58:15来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  arguments 属性:为当前执行的 function 对象返回一个arguments 对象。

function.arguments

  function 参数是当前执行函数的名称,可以省略。

  说明:通过 arguments 属性,函数可以处理可变数量的参数。 arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。

  示例:下面的例子说明了 arguments 属性的用法:

function ArgTest() {
var i, s, numargs = arguments.length;
s = numargs;
if (numargs < 2)
s = " argument was passed to ArgTest. It was ";
else
s = " arguments were passed to ArgTest. They were " ;
for (i = 0; i < numargs; i ) {
s = arguments[i] " ";
}
return(s);
}

  callee 属性:返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文。

[function.]arguments.callee

  可选项 function 参数是当前正在执行的 Function 对象的名称。

  说明:callee 属性是 arguments 对象的一个成员,仅当相关函数正在执行时才可用。

  callee 属性的初始值就是正被执行的 Function 对象。这允许匿名的递归函数。

  示例:

function factorial(n) {
if (n <= 0)
return 1;
else
return n * arguments.callee(n - 1)
}
print(factorial(3));

  要求:版本5.5或以上。

  caller 属性:返回一个对函数的引用,该函数调用了当前函数。

functionName.caller

  functionName 对象是所执行函数的名称。

  说明:对于函数来说,caller 属性只有在函数执行时才有定义。 如果函数是由 JScript 程序的顶层调用的,那么 caller 包含的就是 null 。

  如果在字符串上下文中使用 caller 属性,那么结果和 functionName.toString 一样,也就是说,显示的是函数的反编译文本。

  下面的例子说明了 caller 属性的用法:

function CallLevel() {
if (CallLevel.caller == null)
return("CallLevel was called from the top level.");
else
return("CallLevel was called by another function.");
}

  constructor 属性:表示创建对象的函数。

object.constructor

  必需的 object是对象或函数的名称。

  说明:constructor 属性是所有具有 prototype 的对象的成员。它们包括除 Global 和 Math 对象以外的所有 JScript 固有对象。constructor 属性保存了对构造特定对象实例的函数的引用。

  例如:

x = new String("Hi");
if (x.constructor == String) // 进行处理(条件为真)。

function MyFunc {
// 函数体。
}
y = new MyFunc;
if (y.constructor == MyFunc) // 进行处理(条件为真)。

  description 属性:返回或设置与特定错误相联系的描述字符串。

object.description [= stringExpression]

  description 属性的语法组成部分如下:

参数:-object。必选项。Error 对象的任意实例。
-stringExpression。可选项。包含错误描述的字符串表达式。

  说明:description 属性包含与特定错误相联系的错误信息字符串。使用包含在这个中的值,来警告用户发生了一个不能或不想处理的错误。

  prototype 属性:返回对象类型原型的引用。

objectName.prototype

  objectName 参数是对象的名称。

  说明:用 prototype 属性提供对象的类的一组基本功能。 对象的新实例“继承”赋予该对象原型的操作。

  例如,要为 Array 对象添加返回数组中最大元素值的方法。 要完成这一点,声明该函数,将它加入 Array.prototype, 并使用它。

function array_max( ) {
var i, max = this[0];
for (i = 1; i < this.length; i ) {
if (max < this[i])
max = this[i];
}
return max;
}
Array.prototype.max = array_max;
var x = new Array(1, 2, 3, 4, 5, 6);
var y = x.max( );

  该代码执行后,y 保存数组 x 中的最大值,或说 6。

  所有 JScript 固有对象都有只读的 prototype 属性。可以象该例中那样为原型添加功能,但该对象不能被赋予不同的原型。然而,用户定义的对象可以被赋给新的原型。

  apply 方法:应用某一对象的一个方法,用另一个对象替换当前对象。

apply([thisObj[,argArray]])

参数:-thisObj。可选项。将被用作当前对象的对象。
-argArray。可选项。将被传递给该函数的参数数组。

  说明:如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。

  如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。

  要求:版本5.5或以上。

  call 方法:调用一个对象的一个方法,以另一个对象替换当前对象。

call([thisObj[,arg1[, arg2[, [,.argN]]]]])

参数:-thisObj。可选项。将被用作当前对象的对象。
-arg1, arg2, , argN。可选项。将被传递方法参数序列。

  说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

  如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

  要求:版本5.5或以上。

  concat 方法 (Array):返回一个新数组,这个新数组是由两个或更多数组组合而成的。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:JavaScript实现页面内容在设定时间后消失

下一篇:网页特效:图片随机显示实例详解