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

参数: javascript中函数在调用时,总会得到一个arguments数组参数。

              通过这个数组,函数可以访问所有他被调用时传递给他的参数列表(包括那些未被分配但是在声明时定义的形参。)

               在这里,我要说下,这个arguments也是不久前我接触过。当程序出现错误时,利用它,可以查看相应的函数调用是否正

               确,并根据相应参数,找到问题所在。

返回: 1、函数没有指定返回值时,返回undefined。
             2、returne语句可以让函数提前返回。
              3、函数用new来调用时,且返回值不是一个对象,则返回this(此新对象)。
异常: throw语句抛出一个exception对象(它包含一个name和一个message属性。
             exception对象将被传递一个try语句的catch从句中。由catch来处理。
给类型添加方法: 这个前边提到过,只需给原类型的类添加一个函数即可。例如:Number.integer = function(){}
递归: 递归既是自己直接或间接的调用自身的一中用法。对于javascript的递归,与其他语言也并没有太大的区别。
作用域: 在函数调用时提到了this的取值。那是一个前期比较容易犯错误的地方。这里,也是一处容易忽略的。
                 作用域就是一个变量的生命周期。javascript中,变量具有函数作用域,但是没有块作用域。
                 这就要求我们在用时,把所有的变量声明都写到函数的顶部。(其实写到哪,在函数内部都是可见的)。
闭包: 这个是函数的一中很巧妙的用法,但是到目前为止,我并没有真正的领会它的真正作用,所以先把笔记记下
            先看一段代码:
        var Obj = function() {
            var value = 0;
            return {
                getValue: function() {
                     return value;
                 }
             }
         } ();

            通过这段代码,可以看到Obj的值其实就是含有getValue函数的一个对象.注意最后的()。
            还有一个现象就是,匿名函数已经返回了。但是它的一个属性value。任然可以通过getValue来使用。这就是闭包。
            再来一个例子:
         var add_the_handlers = function(nodes) {
              var i;         
              for (i = 0; i < nodes.length; i++) {
                  nodes[i].onclick = function(i) {
                      return function(e) {
                           alert(e);
                      }
                   } (i);
               }
         }

            我们定义了一个函数,并立即传递i进去执行,而不是把一个函数赋值给onclick。

             那个函数将返回一个事件处理函数,这个事件处理函数绑定传递进去的i值,而不是定义在add_the_handlers函数中的i的值。

             那个被返回的函数赋值给onclick

回调:我的理解就是把函数作为参数,然后让这个函数在另一个函数中执行。
             回调在javascript中,我觉得用的很频繁。这里说下几个注意点:回调中this的取值,回调中借用调用函数的参数的形参数。

             回调更好的用途是在异步请求中使用。使得不连续事件的处理更加容易。


对于这一篇的内容,我感觉是是比较重要的。这里简单总结下比较重点的模块:函数调用,作用域,参数,返回,闭包,回调。

在下一篇,继续学习函数,但是是一些还没有接触到的概念,也或许是已经接触到但是没有对应起来的模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值