代码改变世界

Function

2012-06-04 15:41  呦菜  阅读(426)  评论(0编辑  收藏  举报

Function

JavaScript的函数

摘要:

function functionname(argumnets_name_list)

{

  body

}

function(argumnets_name_list){body}

functionname(argumnets_name_list)

构造函数:

new Function(argumnets_name_list...,body)

参数:

argumnets_name_list...  : 任意多个字符串参数,每个字符串命名一个或多个要创建的Function对象的参数。

body :  一个字符串,指定函数的主体,可以含有人一多条javascript语句,这些语句之间用分号分隔,可以给该构造函数引用前面的参数设置的任意参数名。

返回值:

新创建的Function对象。调用该函数,将执行body指定的javascript代码。

抛出:

SyntaxError    说明在参数body或某个argumnets_name参数中存在Javascript语法错误。

属性:

arguments[]   :    一个参数数组,元素是传递给函数的参数。反对使用该属性

caller  :  对调用当前函数的Function对象的引用,如果当前函数由顶层代码调用,这个属性的值为null。反对使用该属性。

length  :  在声明函数时指定的命名参数的个数。

prototype  : 一个对象,用于构造函数,这个对象定义的方法和属性又构造函数创建的所有对象共享。

方法:

apply()

将函数作为指定对象的方法来调用,传递给它的是指定的参数数组。

call()

将函数作为指定对象的方法来调用,传递给它的是指定的参数。

toString()

返回函数的字符串表示

描述: 虽然可以使用Function()构造函数创建函数对象,但这样做效率不高,在大多数情况下,建议使用函数定义语句或函数直接量来定义函数。

Function.apply()

将函数作为一个对象的方法调用。

摘要:

function.apply(thisobj, args)

参数:

thisobj:  调用function的对象。在函数主体中,thisobj是关键字this的值。如果这个参数是null,就是用全局对象。

args:  一个数组,它的元素是要传递给函数function的参数值。

返回值:

调用参数function的返回值。

抛出:

TypeError:  如果调用该函数的对象不是函数,或参数args不是数组和Arguments对象,则抛出该异常。

描述:

apply()将指定的函数function作为对象thisobj的方法来调用,传递给它的是存放在数组args中的参数,返回的是调用function的返回值。在函数体内,关键字this引用thisobj对象。

例子:

var data = [1,2,3,4,5,6,7,8];
Math.max.apply(null, data);  //8

Function call()

将函数作为对象的方法调用

摘要:

function.call(thisobj, args...)

参数:

thisobj :  调用function的对象。在函数主体中,thidobj是关键字this的值。如果这个参数为null,就是用全局对象。

args :  任意多个参数,这些参数将传递给函数function。

返回值:

调用函数function的返回值。

描述:

call()将指定的函数function作为对象thisobj的一个方法来调用,把参数列表中的thisobj后的参数传递给它,返回值是调用函数后的返回值。

例子:

function HelloWorld(name)
{
    alert("Hello my world! I am "+name);
}

HelloWorld.call(null,"hanmeimei");

Function.length

已声明的参数的个数。

摘要:

function.length

描述:

函数的length属性在定义函数时声明已命名的参数的个数。世纪调用函数时,传递给它的参数个数既可以比它多,也可以比它少。不要混淆了Function对象和Arguments对象的length参数,后者声明的是实际传递给函数的参数个数。

例子:

function add(num1,num2)
{
    var sum = num1 + num2;
}
alert(add.length);   // 2

 

Function.prototype

对象类的原型。

摘要:

function.prototype

描述:

属性prototype是在函数作为构造函数时使用的。它引用的是作为整个对象类的原型的对象。由这个构造函数创建的任何对象都会继承属性prototype引用的对象的所有属性。

 

Function.toString()

把函数转换成字符串。

摘要:

function.toString()

返回值:

表示函数的字符串。

抛出:

TypeError:  如果调用该函数的对象不是Function。则抛出该异常。

描述:

Function对象的方法toString()可以以一种与现实相关的方式将函数转换成字符串。在大多数实现中,如在Firefox和IE这样的实现中,该方法返回一个含有有效JavaScript代码的字符串,即包括关键字function、参数列表和函数的完整主体的代码。在这些实现中,这个toString()方法的输出是全局eval()函数的合法输入。规范并没有要求这一行为,因此,不应该依赖与此。

function HelloWorld()
{
    alert("Hello my world!");
}

HelloWorld.toString();  // function HelloWorld() { alert("Hello my world!"); }