·    Function类型 (属于引用类型)

1.JS中,有的函数均是对象,这个一个非常有特点的地方。它既然是对象,那么它的构造函数是谁呢?就是Function。(例如:function Person(){} 在原型链中 函数Person()的原型是什么呢?答:Person.__proto__ == Funtion.prototype )
2.会和其他引用类型一样具有属性和方法。
3.没有JS函数类型没有重载,只会后面的覆盖前面的   
       如图:
                
4.函数声明和函数表达式的区别(重要):
          //20     
       这是为什么呢?在初始化上下文时候会先把 
                     function sum(num1,num2){。。。}
       放到环境中,然后才会由上而下逐条的执行。
       但是如图这样:
             
        就是错误的。为什么呢?
         var sum = .......; //这是一个赋值语句,在生成上下文环境的时候只会声明变量 var sum;
5.函数也可以作为另一个函数的返回值
    

利用这一特性,我们可以写出非常具有松耦合特性的代码。
6.函数内部的隐藏对象
    函数内部也有隐藏对象:arguments和this,caller
        arguments:是一个数组对象,保存了该函数的所有参数,这些参数放到一个叫arguments的数组对象中。
             注意:arguments对象有一个callee的属性,它指向了拥有该arguments对象的函数。
        this:指执行该函数时的环境对象。
        
        caller:这个属性指向了调用该函数的函数,如果在全局模式下,则指向null。
        因为是outer()调用了inner(),所以会弹出outer()的代码
7.函数的隐藏属性(length,prototype)
        length:函数个参数个数
            
        prototype:(不可以用枚举取出它)原型,是保存他们的实例方法的所在。
8.函数的隐藏方法    call(),apply()
    他们作用相同,都是给一个函数的this赋值;区别在于他们的参数,他们的参数一个都是一个对象,赋值
    给函数的this,后面的参数:在apply中,可以填arguments或者数组;在call中,则必须把函数需要的参数一
    一个个按顺序填写。
        
        
    bind()不是所有浏览器都支持
    
        它可以创造一个“函数“的实例(也就是可以返回一个函数)
        

        

        






JavaScript高级 Function类型的更多相关文章

  1. 浅析JavaScript之Function类型

    JavaScript中的函数实际上是对象,每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上只是指向函数对象的指针,保存函数在堆内存中的地 ...

  2. JavaScript之Function类型

    1. 创建方式 //1.函数声明 function sum(num1,num2){ return num1+num2; } //2.函数表达式 var sum = function(num1,num2 ...

  3. JavaScript的Function 类型

    一,Function定义 Function实际上是对象,与其他引用类型一样具有属性和方法.Function可以通过三种方法进行定义,分别是函数声明语法定义,函数表达式定义和Function构造函数定义 ...

  4. 《JavaScript高级程序设计》读书笔记 ---Function 类型

    说起来ECMAScript 中什么最有意思,我想那莫过于函数了——而有意思的根源,则在于函数实际上是对象.每个函数都是Function 类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对 ...

  5. Javascript高级编程学习笔记(16)—— 引用类型(5) Function类型

    JS中许多有趣的地方都和函数脱不了联系 那么是什么让JS中的函数这么有趣呢? 我们一起来看看吧 Function类型 在JS中函数实际上就是对象,每个函数都是Function类型的实例,和JS的其他引 ...

  6. 《JavaScript高级程序设计》5.5 Function类型

    5.5 Function类型 函数实质上是对象, 每个函数都是Function类型的实例, 并且都和其他引用类型一样具有属性和方法. 因此函数名实际上也是一个指向函数对象的指针, 不会与某个函数绑定. ...

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

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

  8. 读javascript高级程序设计08-引用类型之Global、Math、String

    一.Global 所有在全局作用域定义的属性和方法,都属于Global对象. 1.URI编码: encodeURI():主要用于对整个URI编码.它不会对本身属于URI的特殊字符进行编码. encod ...

  9. JavaScript高级编程———基本包装类型String和单体内置对象Math

    JavaScript高级编程———基本包装类型和单体内置对象 <script> var stringObject = new String("hello world") ...

随机推荐

  1. Shell中set用法(转载)

    使用set命令可以设置各种shell选项或者列出shell变量. 单个选项设置常用的特性. 在某些选项之后-o参数将特殊特性打开. 在某些选项之后使用+o参数将关闭某些特性, 不带任何参数的set命令 ...

  2. Java多线程之新类库中的构件PriorityBlockingQueue

    package concurrent2; import java.util.ArrayList; import java.util.List; import java.util.Queue; impo ...

  3. 中文unicode范围及unicode编解码

    中文unicode范围 : [\u4e00-\u9fa5] 普通字符串可以用多种方式编码成Unicode字符串,具体要看你究竟选择了哪种编码:unicodestring = u"Hello ...

  4. jQuery.loadTemplate客户端模板

    jQuery.Template虽然用起来没有Mustache简洁和方便,还是学习了解一下,做个笔记. 模板可以定义在页面script标签,如下 <script type="text/h ...

  5. 打印从1到最大的n位数

    //和剑指offer程序基本一致,不过print和进位两部分合并在一个程序中 //如果把其分拆,进行适当的整理,代码会更加整洁 void PrintToMaxOfDigitsN(int n) { ) ...

  6. ResultSet的Type

    st = conn.prepareStatement(sql.toString(), ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ ...

  7. Hibernate高级查询QBC条件设置——Restrictions用法 引自:http://www.cnblogs.com/evon168/archive/2010/10/29/1863059.html

    方法说明 方法 说明 Restrictions.eq = Restrictions.allEq 利用Map来进行多个等于的限制 Restrictions.gt > Restrictions.ge ...

  8. 移植ok6410

    tftp u-boot.bin http://blog.csdn.net/link_hui/article/details/5593518 LED driver http://blog.csdn.ne ...

  9. Grunt 之 RequireJS

    RequireJs 提供了一个打包工具 r.js,可以将相关的模块打包为一个文件.相关说明:http://www.requirejs.org/docs/optimization.html 将相关的脚本 ...

  10. POJ1979 Red and Black (简单DFS)

    POJ1979 Description There is a rectangular room, covered with square tiles. Each tile is colored eit ...