您的位置:首页 > Web前端 > JavaScript

JavaScript——函数

2015-07-12 10:11 423 查看
JavaScript中定义函数可以有三种方式:调用function语句;Function()构造函数;函数直接量。

(一)function+函数名+括号括起来的参数列表(可选)+构成函数主体的javascript语句

例如:function print(x,y){return (x*y);}

(二)var+变量+new+Function(多个字符串)【最后一个字符串是函数的主体,其他字符串参数都是形式参数名。若定义的函数没有参数,可以只需传递最后一个字符串(也即函数在主体)】

例如:var f=new Function("x","y","return x*y;");

优点:1.Function()构造函数允许我们动态的建立和编译一个函数,不会将我们限制在function语句预编译的函数体中。

    2.Function()构造函数能将函数定义为Javascript表达式的一部分,而不是定义为一个语句,使用起来更加方便。

        缺点:每次调用函数时,Function()构造函数都要对它进行编译。不适合用于循环体或是经常使用的函数中。

(三)var+变量+function+函数名(可选可不选)+括号括起来的参数列表+构成函数主题的javascript语句

例如:var f=function print(x){return x*y;};(这里并没有真正创建一个名为print()的函数,只是允许函数体用这个名字来引用自身)

优点:1.它和Function()一样都是有javascript的表达式创建,而非语句创建,使用起来更加灵活,尤其适合那些仅使用一次而且无需命名的函数。

    2.Function()构造函数创建的主题必须用一个字符串说明,这种方式用来表达长而复杂的函数是很笨拙的。二函数直接量使用的却是标准的javascript语法,而且函数直接量只被解析和编译一次,而作为字符串传递给Function()构造函数的Javascript代码每次调用时被解析和编译一次.

JavaScript中,函数并不只是一种语法,还可以是数据,这意味着能够把函数赋给变量,存储在对象的属性中或存储在数组的元素中,传递给函数等。

给所有的函数定义了两个方法apply()和call(),使用这两个方法可以像调用其他对象的方法一样调用函数。call()和apply()的第一个参数都是要调用的函数的对象,call()的剩余参数是要传递给要调用的函数的值,apply()的剩余参数也是一样的作用,只不过apply()方法传递给函数的参数是由数组指定的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript function