Function类型(2)
来源:互联网 发布:凡科建站 源码 下载 编辑:程序博客网 时间:2024/06/15 17:43
函数
作为值的函数
function calculate(func,arg1,arg2){ return func(arg1,arg2); } function add(num1,num2){ return num1+num2; } var result=calculate(add,44,56); alert(result);/100
在这个例子中,add函数作为calculate的参数被调用,这样也是可以的,要访问函数的指针而不是调用函数时,要去掉函数名后面的括号。
//作为sort的函数使用
function compare(propertyName){ return function (obj1,obj2){ var value1=obj1[propertyName]; var value2=obj2[propertyName]; if (value1>value2) { return 1 }else if(value1<value2){ return -1 }else{ return 0 } }; } var data=[{name:"apple",color:"red"},{name:"banana",color:"yellow"}]; data.sort(compare(name)); alert(data[0].color);//red
函数的内部属性
函数内部都有两个特殊的对象,他们分别是arguments和this
arguments是一个类数组对象,包含着传入函数中的所有参数,他有一个名叫callee的属性,这个属性呢是一个指针,指向拥有这个arguments对象的函数。
用他我们可以来写一个非常经典的阶乘函数
//不运用argumentsfunction factorial(num){ if (num<=1) { return 1 }else{ return num*factorial(num-1) } }//运用argumentfunction factorial(num){ if(num<=1){ return 1; }else{ return num*arguments.callee(num-1)}
在这个运用argumnts的函数中,没有引用函数名,使得无论函数使用什么名字,都能保证递归的完成
*callee还有一个大兄弟叫caller,他这个大兄弟的保存着调用当前函数的函数的引用,
比如下面这个例子,outer()中调用了inner(),在inner中利用arguments.callee.caller返回了outer()函数。
function outer(){ inner(); } function inner(){ alert(inner.caller); } outer();
另一个特殊对象是this,this引用的是函数据以执行的环境对象。不同的环境下,this的指向不同,如下例
window.color="red"; var exp={color:"blue"}; function sayColor(){ alert(this.color); } sayColor();//red exp.sayColor=sayColor; exp.sayColor();//blue sayColor();//red
阅读全文
0 0
- Function类型(2)
- function类型
- function类型
- Function类型
- function类型
- Function类型
- Function类型
- Function类型
- Function类型
- Function 类型
- JavaScript-1-2:Object类型、Function类型、Array类型
- JavaScript的引用类型2(Function类型)
- 引用类型(4)Function类型
- JavaScript引用类型--Function类型
- javascript引用类型--Function类型
- 引用类型之Function类型
- 理解 JS Function类型
- JS(Function 类型)
- 五分钟搞清楚MySQL事务隔离级别
- Oracle_第一弹
- kafka的java实例
- 编写Linux驱动程序三步骤
- python 之路,致那些年,我们依然没搞明白的编码
- Function类型(2)
- Oracle_第二弹
- BlueScope选择eXtremeDB数据库管理系统用于其轧板机控制系统
- json数据格式转换
- 数据库中char与varchar类型的区别
- 大白话讲解Promise(一)
- 欢迎使用CSDN-markdown编辑器
- Oracle_第三弹
- Linux主机之间传输文件的几种方法对比