function对象
function创建方式:
// function 创建方式1 (推荐方式) function func1() { alert(123); return 8 } var ret=func1(); alert(ret); //function 创建方式2 var func2=new Function("参数1","参数n","函数体"); var add=new Function("a","b","alert(a+b)"); alert(add.length);
function属性和方法
函数属于引用类型,所以它们也有属性和方法。
function f() { return 8 } alert(void(f())) function func1() { b=4; var b=3(尽量采用局部变量) } func1(); alert(b); var ret=0 function func1(a,b) { ret=a+b; return ret } alert(func1(1,5,6,9)) function a(a,b){ alert(a+b); } var a=1;//变量a覆盖函数a var b=2; a(a,b)//报错
Function 对象的 length 属性:
比如,ECMAScript 定义的属性 length 声明了函数期望的参数个数。
alert(func1.length)
Function 对象的方法:
Function 对象也有与所有对象共享的 valueOf() 方法和 toString() 方法。这两个方法返回的都是函数的源代码,在调试时尤其有用。
alert(void(fun1(1,2)))
运算符void()作用:拦截方法的返回值
函数的内置对象arguments:
1 var ret=0; 2 function add() { 3 console.log(arguments.length); 4 console.log(arguments); 5 6 for (var i in arguments){ 7 ret+=arguments[i] 8 } 9 return ret; 10 } 11 12 alert(add(1,2,3,4,5)); 13 14 15 function func2() { 16 if (arguments.length!=3){ 17 throw new Error("param should be 3") 18 } 19 } 20 func2(1,2,3,45); 21 22 23 var func3=function () { 24 alert(123) 25 }; 26 func3();
匿名函数:
var func3=function () { alert(123) }; func3(); //自执行函数 (function(arg){ console.log(arg); })('123')