js中的函数function

简介: <p>    js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式)。arguments属性可以看作是一个Array对象,它有length属性,可以通过序号访问每一个参数,而且通过argument的callee属性可以获取对正在执行的Function对象的引用。如下:</p> <p></p><pre na

    js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式)。arguments属性可以看作是一个Array对象,它有length属性,可以通过序号访问每一个参数,而且通过argument的callee属性可以获取对正在执行的Function对象的引用。如下:

function factorial(n){
  if(n<=n){
   return 1;
   }else{
      return n*arguments.callee(n-1);
   }
}
alert(factorial(5));

上面使用了callee属性完成了一个递归的算法。


Function的另一个属性是caller,它指向正在调用当前函数的父函数对象。利用callee和caller属性,可以很容易实现对堆栈的遍历,如:

function fool(v1){
   foo2(v1,v2,v3);
}
function foo2(v1,v2){
  foo3(v1,v2,v2*v2);
}

function foo3(v1,v2,v3){
  var foo=argument.callee;
  while(foo&&(foo!=window)){
  document.writeln('<br>调用参数:<br>','-------------------------------<br>');
  
   var args=foo.argument;argn=args.length;
   for(var 1=0;i<arg;i++){
   document.writeln('args[',i,']:',args[i],'<br>');
   }
  document.writeln('<br>');
  foo=foo.caller;
  }
}
foo(5);

Function是js中一个很特殊的对象,其特殊体现在他的多重身份上,如:

//function作为类的声明和实现
function ClassA(){
  this.prop1="prop1";
   this.prop2="prop2";
}
//function作为构造函数
var obj=new CalssA();

//输出true,function作为类引用
alert(obj instanceof CalssA);

Function可以声明普通函数,这和其他语言的概念是一样的,但Function还可以用于类的声明和实现,对象的构造函数以及类的引用。上面的代码中通过function关键字声明了ClassA类,并通过this关键字声明了两个属性prop1和prop2,然后在创建obj对象时,ClassA()由起到了对象构造函数的作用;最后代码中使用instanceof关键字判断obj对象是否是ClassA类的实例,此时ClassA又起到了类引用的作用。




相关文章
|
22天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
22天前
|
JavaScript
常见函数的4种类型(js的问题)
常见函数的4种类型(js的问题)
11 0
|
22天前
|
JavaScript
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
写一个函数将N组<>(包含开始和结束),进行组合,并输出组合结果 (js)
9 0
|
1月前
|
自然语言处理 JavaScript 网络架构
js开发:请解释什么是ES6的箭头函数,以及它与传统函数的区别。
ES6的箭头函数以`=&gt;`定义,简化了函数写法,具有简洁语法和词法作用域的`this`。它无`arguments`对象,不能用作构造函数,不支持`Generator`,且不改变`this`、`super`、`new.target`绑定。适用于简短表达式,常用于异步编程和高阶函数。
18 5
|
1天前
|
JavaScript 前端开发
js开发:请解释什么是ES6的Generator函数,以及它的用途。
ES6的Generator函数是暂停/恢复功能的特殊函数,利用yield返回多个值,适用于异步编程和流处理,解决了回调地狱问题。例如,一个简单的Generator函数可以这样表示: ```javascript function* generator() { yield &#39;Hello&#39;; yield &#39;World&#39;; } ``` 创建实例后,通过`.next()`逐次输出&quot;Hello&quot;和&quot;World&quot;,展示其暂停和恢复的特性。
9 0
|
8天前
|
缓存 JavaScript 前端开发
js的入口函数,入口函数的作用
js的入口函数,入口函数的作用
14 4
|
23天前
|
资源调度 Serverless 计算机视觉
高斯函数 Gaussian Function
**高斯函数,或称正态分布,以数学家高斯命名,具有钟形曲线特征。关键参数包括期望值μ(决定分布中心)和标准差σ(影响分布的宽度)。当μ=0且σ²=1时,分布为标准正态分布。高斯函数广泛应用于统计学、信号处理和图像处理,如高斯滤波器用于图像模糊。其概率密度函数为e^(-x²/2σ²),积分结果为误差函数。在编程中,高斯函数常用于创建二维权重矩阵进行图像的加权平均,实现模糊效果。
15 1
|
23天前
|
存储 前端开发 JavaScript
JavaScript如何封装一些常见的函数来提高工作效率
通过封装这些常见函数,你可以在项目中重复使用,提高代码的复用性和工作效率。这些函数包括获取元素、发起Ajax请求、处理本地存储、日期格式化、定时器等功能,可以在不同场景中减少重复的代码编写。
7 0
JavaScript如何封装一些常见的函数来提高工作效率
|
1月前
|
JavaScript
js开发:请解释什么是ES6的Generator函数,以及它的用途。
ES6的Generator函数是暂停恢复的特殊函数,用yield返回多个值,适用于异步编程和流处理,解决了回调地狱问题。
16 6
|
1月前
|
存储 JavaScript 前端开发
js开发:请解释什么是回调函数(callback function),并给出一个示例。
回调函数是JavaScript中处理异步编程的一种常见模式,常用于事件驱动和I/O操作。它们作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,在模拟的异步操作完成后,调用`handleResult`并传递结果。这使得程序员能在操作完成后执行后续任务。
22 1

热门文章

最新文章