web学习—javascript学习—函数(一)

        函数:首先说说我的理解,就是用来实现一些功能的模块,它可以用来相互调用,复用。在javascript中,函数的功能被发挥的更加强大了。在这里,可以说,一个函数就是一个类。它可以包含各种类型的对象。没有了平常编程语言那么多语法的限制。所以使用更加灵活了。下面重点说下函数的用法。

函数对象:javascript中,函数既是对象。它的原型是 Function.prototype。
                   在函数创建时,会自动添加一个prototype属性。

                   函数可以向对象一样被调用(存放在变量、对象、数组中。可以作为函数的参数,也可以作为返回的值。函数也可以有自己的方法。)

函数字面量:函数也可以声明成字面量的形式。
      创建:
var a = function(b, c) {
                       return b + c;
                 }
             注意:1、保留字function不可少。
                         2、函数名可省略(如上),也可以作为自己的参数实现递归调用。
                         3、参数
                         4、函数主体

调用:既是暂停当前函数,去执行一个新函数的过成。出去声明的形参外,函数还会附加两个传递参数:this与argument。
              this在javascript中确实是一个让人十分头疼的东西。依据他,javascript具有四种调用模式:

      方法调用模式:函数作为对象的一个属性。此时的this指的是这个对象。如下模式:
                 var Obj={
                       value:0;
                      a:function(){
                             alert(this.value);
                      }
                 }  

      函数调用模式:函数不是作为一个对象的方法。此时的this值得是全局对象。

                                    这样存在一定的缺陷。当函数中的函数用this时就会访问错误。解决可如下:

                 Obj.double = function(){
                  var that = this;
                  var fun = function(){
                    that.value = add(that.value, that.value);
                  };
                  fun();
               }
      构造器调用模式:javascript是一门基于原型继承的语言。这就意味着对象可以直接从其他对象继承属性。
                                    在调用函数前带上new,那么将创建一个隐藏的连接到该函数的prototype成员的新对象。此时this绑定到那个新对象上。

                  var q = function(string){
                           this.status = string;
                    };
                q.prototype.get_status = function(){
                         return this.status;
                  };
                 var myq = new q("config");
                 alert(myq.get_status());
                  这种方式不推荐使用。
      Apply调用模式:apply方法,让我们构建一个参数数组并用其去调用函数,他允许我们选择this的值。
                                  apply接受两个参数,一个被绑定this的值与一个参数列表。

                   var array = [3,4];
                   var sum = add.apply(null,array);      //sum值为7.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值