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

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

  1. function sum(num1,num2){
  2. return num1 + num2;
  3. }

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

  1. var anotherSum = sum;

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

  • Function 没有重载

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

  • 函数声明与函数表达式

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

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

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

    1. function callFunc(func,value1,value2){
    2. return func(value1,value2);
    3. }
    4.  
    5. function sum(num1,num2){
    6. return num1 + num2;
    7. }
    8.  
    9. var result = callFunc(sum,10,20);
    10.  
    11. alert(result);
  • 函数内部属性

    • arguments(实参个数)

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

    • this

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

  • 函数属性和方法

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

      • length

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

        1. var num = func.length;
      • prototype

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

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

      • apply()

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

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

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

        1. 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. jQuery异步Deferred

    原文链接:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html 普通 ...

  2. Java的一些细节问题

    一.Java求余%的结果符号取决于除数的符号位:小数也可以求余,余数仍为小数. package com.test; public class Test { /** * @author 容杰龙 */ p ...

  3. 使用Log4在测试过程中打印执行日志 及配置log4j.properties!

    http://zengxiantao.iteye.com/blog/1881706 1.环境配置:到网上下载log4j-1.2.17.jar包!完后 添加到 项目的build path 中即可! 2. ...

  4. linux普通用户被内存被限制的问题

    把应用从root用户迁移到普通用户test,由于普通用户会被限制最大的进程数,当进程数占满后出现了下面的错误 /bin/bash: Resource temporarily unavailable. ...

  5. USB硬件接口相关

    1.USB 设备端的D+为何要拉一个1.5K电阻到3.3v上?(USB是5v供电,但通信的电平是3.3v,所以上拉电平为3.3v:若要上拉到5v,则上拉电阻为10k) usb有主从设备之分,主设备有: ...

  6. 《Unix网络编程卷1:套接字联网API》读书笔记

    第一部分:简介和TCP/IP 第1章:简介 第2章:传输层:TCP.UDP和SCTP TCP:传输控制协议,复杂.可靠.面向连接协议 UDP:用户数据报协议,简单.不可靠.无连接协议 SCTP:流控制 ...

  7. C++解析(10):struct和class的区别

    0.目录 1.默认访问级别 2.默认继承方式 2.1 分别独立继承 2.2 struct继承class 2.3 class继承struct 3.小结 1.默认访问级别 在用struct定义类时,所有成 ...

  8. 深入理解JVM一配置参数

    一.JVM配置参数分为三类参数: 1.跟踪参数 2.堆分配参数 3.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 二.跟踪参数 跟踪参数用于跟踪监控JVM,往往被开发人 ...

  9. 最小点权覆盖集&最大点权独立集

    最小点权覆盖集 二分图最小点权覆盖集解决的是这样一个问题: 在二分图中,对于每条边,两个端点至少选一个,求所选取的点最小权值和. 方法: 1.先对图二分染色,对于每条边两端点的颜色不同 2.然后建立源 ...

  10. 利用MSXSL.exe绕过AppLocker应用程序控制策略

    1.需要用到微软工具MSXSL.exe,msxsl.exe是微软用于命令行下处理XSL的一个程序,所以通过他,我们可以执行JavaScript进而执行系统命令,其下载地址为: https://www. ...