JavaScript--function()(1)

初步了解JavaScript函数:
1>:通过关键字创建函数:
1:以函数声明的方式创建函数
function f(x)
{
    return x * x;
}
2:匿名函数创建(以表达式的方式创建函数)。
var f = function(x)
{
    return x * x;
}
document.writeln(f(12));//函数的调用
3:当有创建一个递归函数时此时指定函数是名字是非常有必要的(JavaScript 1.5以前的版本是不支持以下
的创建方式)
var f = function fact(x)
{
    if(x <= 1)
    return 1;
    else
    return x * fact(x - 1);
}
document.writeln(f(3));
4:一比较少见的使用方式(因为它的可读性较差),函数创建完后就立即调用,不推荐这样做。
var f =(function fact(x){
    if(x <= 1)
    return 1;
    else
    return x * fact(x - 1);
})(6);
document.writeln(f);
5:JavaScript函数是可以嵌套定义的,尽管如此但是嵌套函数一般都不能定义在块(statement/if..elsew/while .......)内,要求定义在函数体内的最高级别。
function hypotenuse(a, b)
{
    function square(x)
    {
        return x * x;
    }
    return Math.sqrt(square(a) + square(b));
}
 
2>:用Function()函数构造器创建函数(不建议使用)
1:Function()函数构造器可以像关键字function()一样完成函数的定义;用函数构造器构造函数最后一个
参数将是函数体,前面的参数都将是被创建函数的参数

var f = new Function("x", "y", "return x*y;");
document.writeln(f(12,12));
等效函数:function f(x, y) { return x*y; }
 
注意:
 1:使用Function()构造器构建的函数在每次函数调用是函数都将被创建,如果用它来完成递归函数那效率
也是非常低的
 2:使用Function()构造器构造的函数将是最高层的函数;
 如:通过函数构造器创建的函数将访问不到局部变量

var y = "global";
function constructFunction() {
    var y = "local";
    var f=new Function("return y")
    return f(); //这个被构造的函数将访问不到 y = "local"
}
document.writeln(constructFunction());//输出结果将是global

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值