·    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. 30天轻松学习javaweb_Eclipse在修改了web.xml后将自动更新到tomcat服务器中

    context.xml中增加<WatchedResource>WEB-INF/web.xml</WatchedResource>,Eclipse在修改了web.xml后将自动更 ...

  2. vim操作笔记

    1.切换到下一个文件 假设要切换的文件名为 test.py :ex test.py 2.文档内复制命令 yy "复制光标所在行.或大写一个Y. 2yy "复制两行. y^ &quo ...

  3. Enumerator yielder.yield 与 Proc.yield 区别

    最近看ruby cookbook遇到这个用法,google一下,这里原文解释 http://stackoverflow.com/questions/18865860/enumerator-yielde ...

  4. C++学习32 重载new和delete运算符

    内存管理运算符 new.new[].delete 和 delete[] 也可以进行重载,其重载形式既可以是类的成员函数,也可以是全局函数.一般情况下,内建的内存管理运算符就够用了,只有在需要自己管理内 ...

  5. 将Word文档发给别人时如何限制别人只能修改文档部分内容

    将Word文档发给别人时如何限制别人只能修改文档部分内容  转自:互联网.时间:2014-04-16   作者:snow   来源:互联网 在很多情况下我们都不希望别人修改我们的文档内容,特别实在将W ...

  6. JqGrid单选

    You have to do some more stuff: 1. Set multiboxonly to true and multiselect to true 2. Define the ev ...

  7. 页面中插入flash,并且给flash添加单击事件控制播放,以及获取相关参数.

    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100%" hei ...

  8. ubuntu 命令行软件包管理

    安装软件包 apt-get install vim 卸载 apt-get remove/autoremove vim autoremove 会顺便卸载未使用,未被依赖的软件包 查询或者搜索软件包:: ...

  9. cocos2dx一个场景添加多个层

    首先创建两个layer,以下是头文件 #pragma once#include "cocos2d.h"USING_NS_CC;class BackgroundLayer : pub ...

  10. iOS 中关闭键盘方法

    在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘.对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但是 iPhone 程序中的键盘却没有这样的按钮,不过我们可以采取一些方法关闭 ...