js函数

来源:互联网 发布:vb的优缺点 编辑:程序博客网 时间:2024/04/29 09:35
var l=(function(x){return x*x})(5);
//alert(l);
//任意数目参数函数。
function max(){
var m=Number.NEGATIVE_INFINITY;
alert(m);
for(var i=0;i<arguments.length;i++)
if(arguments[i]>m)
m=arguments[i];
return m;
}
//alert(max(1,2,3,4,5));
//alert(null||0);//这个表达式可以给一些变量赋初始值
//alert(undefined||0);//这个表达式可以给一些变量赋初始值
//校验函数的参数是否为合法的个数
function check(args){
var actual=args.length;
var expected=agrs.callee.length;
if(actual!=expected)
throw new Error("wrong number of arguments,expect:"+expected+";actual passed:"+actual)
}
function f(x,y,z){
check(arguments);
return x+y+z;
}

alert(f(2,2,2));

js在函数中有一个隐含的对象,可以通过arguments来访问。arguments对象相当于该函数的参数数组,里面存放了该函数的参数,按从左至右的参数顺序先后存放。它有length属性和callee属性。callee属性返回的是函数本身。

函数本身其实也是一种对象,它还有一个属性,就是length。这个length代表的是声明函数时的参数个数,而不是实际调用时传递的参数个数(arguments.length);

所有函数自带的方法:call()、apply(),这两个方法的作用是把该函数当做第一个参数的方法来调用:

比如f.call(o,a,b)效果等同于 o.m=f; o.m(a,b); delete o.m;//f是一个函数

apply()方法与call()方法类似,但是apply的参数是由数组来传递的,比如 f.apply(o,[a,b])

函数的参数也可以是函数。

function mapArray(a,f){
var r=[];
for(int i=0;i<a.length;i++)
r[i]=f(a[i])
return r;
}


原创粉丝点击