zoukankan      html  css  js  c++  java
  • JavaScript权威指南—函数

    函数定义
    function <函数名>(<参数列表>)
    {
       <函数体>
    }
    函数既可以有return语句,也可以没有。如果函数没有return语句,它就只执行函数体中的每条语句,然后返回给调用者undefined。

    函数可以嵌套在其它函数中,但是不能出现在循环或条件语句中。(函数直接量例外)

    Function构造函数
    var <对象名>=new Function(<参数列表>,<函数体>)

    函数直接量
    var <对象名>=function(<参数列表>)
    {
       <函数体>
    }
    使用函数直接量创建的是未命名函数,但是它的语法也规定可以指定函数名,这在编写调用自身的递归函数时非常有用。
    使用函数直接量比使用Function构造函数更方便。

    创建一个函数对象,实际上函数名并没有什么实质意义,它不过是用来保存函数的变量的名字,或者说是函数的一个引用。

    函数可以做为参数传递给其它函数或者把函数作为数值来处理。

    函数的实际参数Arguments对象
    在一个函数体内,标识符arguments具有特殊含义。它是调用对象的一个特殊的属性,用来引用Arguments对象。Arguments对象就像数组,可以按照数字获取传递给函数的参数值。
    Arguments对象还定义了callee属性,用来引用当前正在执行的函数。这对未命名的函数调用自身非常有用。
    尽管定义函数时有固定数目的命名参数,但当调用这个函数时,传递给它的参数数据却可以是任意的。

    函数实际上是一种对象。
    函数的length属性表示函数声明的形参的个数。
    每个函数都有prototype属性,它引用的是预定义的原型对象。原型对象在使用new运算符把函数作为构造函数时起作用,它在定义新的对象类型时起着非常重要的作用。

    ECMAScript V3给所有函数定义了call()和apply()两个方法。使用这两个方法可以像调用其它对象的方法一样调用函数。call()和apply()的第一个参数都是要调用的函数的对象,在函数体内这一参数是关键字this的值。call()的剩余参数是传递给要调用的函数的值。apply()和call()方法类似,只不过传递给函数的参数是由数组指定的。
     例如:
     f.call(o,1,2);
    相当于下面的代码
    o.m = f;
    o.m(1,2);
    delete o.m;
  • 相关阅读:
    iOS App之间跳转
    iOS 编码转换
    iOS文件类型判断
    iOS 运行时
    libqrencode生成二维码
    设置app的启动图
    根据字体计算CGRect
    iOS 英文学习
    libev 中IO事件循环解析
    libev 默认事件循环初始化的解析
  • 原文地址:https://www.cnblogs.com/figo/p/712149.html
Copyright © 2011-2022 走看看