本文地址:http://www.cnblogs.com/veinyin/p/7607798.html 

函数实际上是对象,也具有属性和方法,函数名实际上是指向函数对象的指针

 function sum(num1,num2){
return num1 + num2;
}

不用圆括号时为访问函数指针,而不是函数调用,如下例,将 anotherSum 也指向 sum 所指向的函数

var anotherSum = sum;

此时若将 sum 赋值为 null, anotherSum 仍能继续访问该函数

  • Function 没有重载

    由于函数其实是指针,若存在两个相同的函数名,则后一个会将先前的函数覆盖掉

  • 函数声明与函数表达式

    • 函数声明: 解析器会率先读取函数声明,并使其在执行任何代码之前可以访问

       function sum(num1,num2){
      return num1 + num2;
      }
    • 函数表达式: 在解析器执行到它所在的代码行,才会真正被解释执行

       var sum = function(num1,num2{
      return num1 + num2;
      }
  • 作为值的函数

     function callFunc(func,value1,value2){
    return func(value1,value2);
    } function sum(num1,num2){
    return num1 + num2;
    } var result = callFunc(sum,10,20); alert(result);
  • 函数内部属性

    • arguments(实参个数)

      arguments 包含传入函数中的所有参数,同时还包含有一个 callee 属性,指向拥有这个 arguments 对象的函数

    • this

      this 引用的是函数据以执行的环境对象

  • 函数属性和方法

    • 每个函数均有以下两个属性

      • length

        表示函数希望接收的参数个数(形参个数)

        var num = func.length;
      • prototype

        所有实例方法都保存在该属性下

    • 每个函数均有以下两个方法,可用来改变 this 指向

      • apply()

        apply() 方法接收两个参数:函数运行作用域、参数数组,数组可以为 arguments 对象,也可以为 Array 实例

        apply(func,[value1,value2,value3]);
      • call()

        作用于 apply() 函数相同,仅接收参数不同,参数为函数运行作用域、参数,其中参数必须全部列出

        call(func,value1,value2,value3);

引用类型 ( 对象定义 )——Function 类型的更多相关文章

  1. 引用类型 ( 对象定义 )——Array 类型

    本文地址:http://www.cnblogs.com/veinyin/p/7607293.html  一个数组中可以存储不同类型的值,可以混合存储数字.字符串.对象等 1 创建数组 1.1 构造函数 ...

  2. 引用类型 ( 对象定义 )——Object 类型

    本文地址:http://www.cnblogs.com/veinyin/p/7607100.html  创建实例 new 操作符后跟构造函数 var people = new Object(); pe ...

  3. 引用类型 ( 对象定义 )——Date 类型

    本文地址:http://www.cnblogs.com/veinyin/p/7607743.html  1 创建日期对象 var date = new Date(); 2 可以给日期对象传值 2.1 ...

  4. 引用类型 ( 对象定义 )——RegExp 类型

    var expression = /pattern/flags; 以上为创建正则表达式格式,斜线包围的为正则表达式,flags 有三个值可以选择 本文地址:http://www.cnblogs.com ...

  5. 引用类型(三):Function类型

    一. Function类型函数实际上是对象.每个函数都是Function类型都实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象都指针.1.函数通常是使 ...

  6. 引用类型-Function类型

    Function类型 定义函数的三种方式: 1.函数声明 function sum(num1,num2){ return num1 +num2; } 2.函数表达式 var sum = functio ...

  7. JavaScript笔记——引用类型之Object类型和Function类型

    <JavaScript高级程序设计>中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型 Object类型 创建对象 var person = new ...

  8. 引用类型之Function类型

    Function类型 ECMAScript中最有意思的就是函数了,有意思的根源,在于函数实际上是对象.每个函数都是Function的实例,具有属性和方法.而重要的一点是,函数名,不过是指向函数的指针, ...

  9. JavaScript--我发现,原来你是这样的JS(再说引用类型,基本包装类型与个体内置对象)

    一.介绍 本篇是续上一篇的,引用类型的后篇,本篇主要是说基本包装类型和个体内置对象.如果你能收获一些知识,那我很高兴,很满足,哈哈哈,希望大家能愉快看完.如果你想学好一门技术,要不忘初心,方得始终. ...

随机推荐

  1. VMware12 pro装unlocker207补丁后依然没有apple mac选项,问题解决

    把VMware所有的服务先停止,任务管理器里面的也停止.然后再安装unlocker207补丁就行了.亲测.

  2. ci事务

    CI框架百问百答:CodeIgniter的事务用法?--第9问 时间 2013-06-06 10:57:45  CSDN博客 原文  http://blog.csdn.net/haor2756/art ...

  3. virtualenv是什么?virtualenv的安装及pycharm的配置和使用

    virtualenv是什么? virtualenv是一个创建隔绝的Python环境的工具.virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包.简单的说就是一 ...

  4. Python @retry装饰器的使用与实现案例(requests请求失败并重复请求)

    在爬虫代码的编写中,requests请求网页的时候常常请求失败或错误,一般的操作是各种判断状态和超时,需要多次重试请求,这种情况下,如果想优雅的实现功能,可以学习下retrying包下的retry装饰 ...

  5. webgl 初识1

    1.  webgl是什么?   WebGL其实是一个非常简单的API.好吧,“简单”可能是一个不恰当的描述. 它做的是一件简单的事,它仅仅运行用户提供的两个方法,一个顶点着色器和一个片断着色器, 去绘 ...

  6. PHP中关于取模运算及符号

    执行程序段<?php  echo 8%(-2) ?>,输出结果是: %为取模运算,以上程序将输出0 $a%$b,其结果的正负取决于$a的符号. echo ((-8)%3);     //将 ...

  7. 第113天:Ajax跨域请求解决方法

    一.原生JS实现ajax 第一步获得XMLHttpRequest对象 第二步:设置状态监听函数 第三步:open一个连接,true是异步请求 第四部:send一个请求,可以发送一个对象和字符串,不需要 ...

  8. 【Python】Python处理csv文件

    Python处理csv文件 CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看.由于是纯文本,任何编辑器也都可打开.与Excel文件不同,CSV文件中: 值没 ...

  9. 苹果手机连wifi跳不出来登录网页解决办法

    1.点开要连接wifi后面的小叹号“!”,打开“自动登录” 2.打开设置,关闭SAFARI的“阻止弹窗” 3.重新连接wifi

  10. Redis windows环境安装 以及 redis整合spring

    Redis对于Linux是官方支持的,安装和使用没有什么好说的,普通使用按照官方指导,5分钟以内就能搞定.详情请参考: http://redis.io/download Redis官方是不支持wind ...