JavaScript面向对象的支持(上)
2010-09-14 13:37:41 来源:WEB开发网// 留意下面这行代码的写法
document.writeln(obj);
5). function类型
javascript函数具有很多特性,除了面向对象的部分之外(这在后面讲述),它自已的一些独特特性应用也很广泛。首先javascript中的每个函数,在调用过程中可以执有一个arguments对象。这个对象是由脚本解释环境创建的,你没有别的方法来自己创建一个arguments对象。arguments可以看成一个数组:它有length属性,并可以通过arguments[n]的方式来访问每一个参数。然而它最重要的,却是可以通过 callee 属性来得到正在执行的函数对象的引用。接下的问题变得很有趣:Function对象有一个 caller 属性,指向正在调用当前函数的父函数对象的引用。
——我们已经看到,我们可以在JavaScript里面,通过callee/caller来遍历执行期的调用栈。由于arguments事实上也是Function的一个属性,因此我们事实上也能遍历执行期调用栈上的每一个函数的参数。下面的代码是一个简单的示例:
// 调用栈的遍历
//---------------------------------------------------------
function foo1(v1, v2) {
foo2(v1 * 100);
}function foo2(v1) {
foo3(v1 * 200);
}function foo3(v1) {
var foo = arguments.callee;
while (foo && (foo != window)) {
document.writeln('调用参数:<br>', '---------------<br>'); var args = foo.arguments, argn = args.length;
for (var i=0; i<argn; i++) {
document.writeln('args[', i, ']: ', args[i], '<br>');
}
document.writeln('<br>'); // 上一级
foo = foo.caller;
}
}
Tags:JavaScript 面向 对象
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接