zoukankan      html  css  js  c++  java
  • js函数定义和函数调用总结

    一:函数定义分为两大类,两大类里又可以细分

       1,普通函数声明

          例如function a(x){return x+1}

       2,函数表达式来定义有函数名(递归调用时有用,一般不用):例如

                   var a = function face(x){

                            if(x<1)return 1;

                            else return x*face(x-1)

                    };   //可以用来进行递归调用

      3,函数表达式来定义函数名,例如

                      var a=function(x){

                          return x+1;

                       };

        调用方式为a(x)

        也可以定义完直接调用  var a =(function(x){renturn x*x}(10))

        4,当作对象的一个方法来定义

           var o={

              y:2,

               m:function(x){

                  console.log(x+this.y) //3

        }

          }

          o.m(1);

    二:函数调用

        1)普通函数调用  例如: a(x,y)

             this一般不出现在函数里,即使存在也只是用来判断是否为严格模式,a(x,y)

        2)方法调用:   o.m=function(){}

               a. 指的是调用对象里的方法,调用用o.m(x,y),也可以用【】进行调用,例如0["m"](x,y);

               b. 可以继续访问返回值中的方法:customer.f().m();
               c. this在方法里边代表方法所在的对象也就是o,通过this可以调用o对象里的所有属性。

               d.如果对象里,函数嵌套函数,被嵌套的函数里的this不指向该对象

                  var o={
            m:function(){
              var seft=this;
              console.log(this===o);//true
              f();
                        function f(){
                             console.log(this===o)//false
                             console.log(seft===o)//true
                          }
                        }
                   }
                o.m();

             3)  构造函数调用

               var o=new Object();  或者var o=new Object;如果不带参数也可以忽略后边的括号

              a,构造函数顶以后会创建一个新空对象,该对象继承构造函数的prototype属性。

              b,this指向新创建的对象,可以用来引用这个对象的上下文

              c,返回值永远是这个对象,如果指出return的是一个对象那么返回值就是一个对象。

                           如果有return但没有指定值,或者返回一个原始值,那么回忽略这个返回值,返回值还是这个新对象。

              4)间接调用

                 用call()和apply()进行调用,(稍后补充)

               

           

              

          

          

      

  • 相关阅读:
    C#截取字符串的方法小结
    使用苏飞httphelper开发自动更新发布文章程序
    公务员“上班睡觉”为何会被强势围观?
    透明代理和匿名代理的区别
    Linux基础命令---ipcalc计算IP
    Linux基础命令---apwatch
    Linux基础命令---arping
    Linux基础命令---arp
    Linux基础命令---ifdown、ifup
    Linux基础命令---ifconfig
  • 原文地址:https://www.cnblogs.com/Ycc9/p/4670389.html
Copyright © 2011-2022 走看看