首页 > 代码库 > 函数声明和函数表达式
函数声明和函数表达式
定义函数的常见方法:
函数声明的一个特征:函数声明提升;
函数声明如:
function fName(){}
函数表达式也是常见的创建函数的方法:
var fName = function ( ) { }
函数表达式的另一种声明的方法:
(function f(){}); //()是一组分组操作符,它的内部只能包含表达式
注意:函数表达式与其他表达式一样,在使用前一定要进行赋值操作。在把函数当做值来使用的情况下,都可以使用匿名函数,
但是这不是匿名函数的唯一用途。
创建函数也可以再另一个函数中返回一个函数
function create ( ){ .......... return function( ){ ........ }; }
函数递归:一个函数通过调用自身的情况
funtion fName (){ if(num <= 1){ return 1; }else{ return num * arguments.callee( num -1 );//arguments.callee是一个指向当前函数的一个指针 }}
闭包:是指有权访问另一个函数作用域中的变量的函数,闭包会携带包含它的函数的作用域变量对象。
一个闭包的例子:
1 var name = " 闭包"; 2 3 var object = { 4 5 name : "JS", 6 7 getName : function(){ 8 9 //这是一个闭包10 return function(){11 return this.name;12 };13 14 }15 16 };
由上面的例子谈下关于闭包的this对象,闭包的this对象一般情况下指向的是window;
1 var name = " 闭包"; 2 3 var object = { 4 5 name : "JS", 6 7 getName : function(){ 8 9 //这是一个闭包10 return function(){11 return this.name;12 };13 14 }15 16 };17 18 console.log(object.getName()()); //输出闭包 this指向 window
1 var name = " 闭包"; 2 3 var object = { 4 5 name : "JS", 6 7 getName : function(){ 8 9 //把包含函数的this引用复制给变量,在闭包中调用,改变闭包的this引用10 11 var _this = this;12 13 //这是一个闭包14 return function(){15 return _this.name;16 };17 18 }19 20 };21 22 console.log(object.getName()()); //输出JS this指向 object
函数声明和函数表达式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。