js函数

5 篇文章 0 订阅

函数
        function say(){}
            say()
        funciton run(){}
        Number()
        new Object()
调用函数
        js中,所有函数的内部结构都是一样的
普通函数:
            function say(){}
            Number()
构造函数
            new Object()


        函数就是一个对象

1.创建函数

1.函数字面量
                var say=function(){}
2.函数声明
                function say(){}
3.匿名函数
                (function(){})()                        
                function say(){
                     alert("hello-say---");
                 }

                 var run=function(){
                     alert("run-------");
                 }
                 say()
                 run()
4.解析顺序
        1.   优先解析函数的声明,然后解析使用var操作符声明的变量
        2.函数的参数	
            形式参数(形参)
            实际参数(实参)
              function enjoy(a,b){                        
                   console.log(a,b);
               }
                   enjoy(34,4,5,6,"hello");// 34,4
           function say(a,b){
               console.log(a+b);
           }
           say(1);
js中只要函数名相同,即为重写
                function say(){}
                function say(a,b){}
                say();
js中实际参数个数可以和形式参数个数不一致,数据类型也可以不一致,

2.函数的调用

            普通函数:
                     函数名()
            构造函数:
                    new 函数名()
            .call    可以改变this指向
            .apply

3.函数的内部属性

1.arguments:类数组对象
                    用来保存实际参数列表
                    length:实际参数的个数
                    callee:用来从函数内部指向函数本身
	                function enjoy(a,b){
	                //1.var a; var b;
	                console.log(arguments.length);     //输出个数 5 
	                console.log(arguments.callee); }//ƒ enjoy(a,b){
	                enjoy(34,4,5,6,"hello");         
	                //1.vara; var b;console.log(arguments.length);       
 //console.log(arguments.callee);  }   
2.this:
                    vi:兜底对象global
                    html:兜底对象window

                        函数赖以执行的环境对象
                    1.什么时候确定?
                        当拥有当前this的函数被调用的时候确定
                    2.指向
                        谁调用当前拥有this的函数,this指向谁
                                例子
                            		function say(){
                                        console.log(this);//window
                                    }

                                    say();//window.say()


                                    var obj={
                                        say:function(){
                                            console.log(this);
                                        }
                                    }

		                            obj.say();//obj
3. 形参
                        形式参数:
                                在声明函数时,写在function后的()中
                        实际参数:
                                在调用函数时,写在函数名后()中
                                js中没有重载概念,所有函数名相同的函数,均为重写
                                实际参数可以和形式参数的个数不一致 类型也可以随意

4.作为值的函数和作为返回值的函数

作为值:

                    function say(){//1001
                        console.log("hello");
                    }
                    function sayHello(fn){
                        //var fn;
                        //say->arguments[0]:1001->
                        //arguments[0]->fn
                        //fn:1001
                        
                        fn();   //俩个fn都是形参
                    } 

                    sayHello(say);//say为实参
作为返回值
                	function say(){
                    return function(){
                        console.log("hello");
                    }
                }

                var result=say();
                result();
                console.log(result);

5. 函数的属性

            say.length:形式参数个数
        函数的调用:
            this->指定函数内部this值
            call(this,实参列表)
            apply(this,[实参列表])

            prototype:原型对象
          		function say(a,b){                            
                      console.log(arguments);
                      console.log(this);
                  }
                  //say(1,2,3,4,5);
                  //say.call({},3,4,5);   //把this指向改为{},给a赋值3,给b赋值4

                  var obj={
                      say:say
                  }

                  //obj.say.call(window,4,5,6);//把this指向改为window,给a赋值4,b赋值5
                  obj.say.apply([],[5,6,7,8]);//把this指向[],把类数组对象给arguments
                  console.log(say.length);//打印形参个数2(a,b)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值