JavaScript中的函数模式详解
JavaScript设计模式的作用是提高代码的重用性,可读性,使代码更容易的维护和扩展
在javascript中,函数是一类对象,这表示他可以作为参数传递给其他函数;此外,函数还可以提供作用域。
创建函数的语法
命名函数表达式
//命名函数表达式 varadd=functionadd(a,b){ returna+b; };
函数表达式
//又名匿名函数 varadd=function(a,b){ returna+b; };
为变量add赋的值是函数定义本身。这样,add就成了一个函数,可以在任何地方调用。
函数的声明
functionfoo(){ //codehere } //这里可以不需要分号
在尾随的分号中,函数表达式应总是使用分号,而函数的声明中并不需要分号结尾.
函数声明与表达式
函数的提升(hoisting)
函数声明的行为并不等同于命名函数表达式,其区别在于提升(hoisting)行为,看下面例子:
<scripttype="text/javascript"> //全局函数 functionfoo(){alert("globalfoo!");} functionbar(){alert('globalbar');}
functionhoist(){ console.log(typeoffoo);//function console.log(typeofbar);//undefined
foo();//localfoo! bar();//TypeError:'undefined'isnotafunction
//变量foo以及实现者被提升 functionfoo(){ alert('localfoo!'); }
//仅变量bar被提升,函数实现部分并未被提升 varbar=function(){ alert('localbar!'); }; } hoist(); </script>