function对象
1、函数与function对象
函数是一段JavaScript代码,只定义一次,可能被调用或执行多次。
function类型是JavaScript提供的引用类型之一,通过Function类型创建Function对象。
在Javascript中,函数也是以对象的形式存在的,每个函数都是一个Function对象。
函数名本质就是一个变量名,是指向某个Function对象的引用。2、构造函数
函数除了以声明定义方式和字面量定义方式之外,还可以用Function类型进行定义。
注意:通过Function定义的函数效率远不如通过函数定义语句或字面量表达式定义两种方式。
相关代码:
var add=new Function(
"num1",
"num2",
"var sum=num1+num2;return sum;"
);
函数的属性和方法
由于每个函数都是一个Function对象,Function类型也提供了一些属性和方法。
属性:length:表示函数希望接收的命名参数的个数。
相关代码:
function add("num"){
console.log(num+10);
}
console.log(add.length);
结果:1
方法:Function 对象也有与所有对象共享的 valueOf() 方法和 toString() 方法。这两个方法返回的都是函数的源代码,在调试时尤其有用。
相关代码:
function doAdd(iNum) {
console.log(iNum + 10);
}
console.log(doAdd.toString());
结果:function doAdd(iNum) {
console.log(iNum + 10);
}
function doAdd(iNum) {
console.log(iNum + 10);
}
console.log(doAdd.toString());
结果:[Function: doAdd]
方法:call();apply();:在指定的函数内调用另一个函数,参数能够以列表形式传入。
方法:bind();:用于基于现有函数创建一个新函数对象。同时为新函数对象提前绑定this值或设置参数值。