`
j357777842
  • 浏览: 69119 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • letle: 这种隐藏贴还是不要发的好
    Array类
  • ajaxgo: lz,我建议你这类纯api的东西,可以找份js api手册藏着 ...
    Array类
  • zxyyxzzxy: 不错。学到了不少东西!
    Array类
  • ajaxgo: lz是要告诉我们函数的知识,还是在问问题??话说上面那段见的眼 ...
    Function
  • afcn0: 当然不一样,函数的length在js里面是一个比较没用的东西, ...
    Function

Function

阅读更多
声明:我写的博客就是我的学习笔记,让我在忘记的时候可以在任何时候,任何地方,打开连接就可以看到,让我想起忘记的东西.
我的博客通常都有资料来源,只用于学习,没有任何其他目的,如果有版权问题,请跟我联系,如果对资料有什么疑问,可以留言!
我的email:herhun@163.com

摘自:js高级程序设计

Function可以表示开发者定义的任何函数.用Function直接创建函数的语法如下:
var function_name=new Function(argument1,argument2,......,argumentN,function_body);
示例:

var sayHi =new Function("sname","sMessage","alert(\"Hello\"+sname+\",\"+sMessage+\"!\");");

sayHi("这是第一个参数sname","这是第二个参数sMessage");

这种写法比较困难,但这有助于理解函数只不过是一种引用类型,它们的行为与用Function类明确创建的函数行为相同,
function doAdd(iNum){

    alert(iNum+100);
}

function doAdd(iNum){
    alert(iNum+10);
}
doAdd(10);//它打出来的结果是20
第二个函数重载了第一个函数,使doAdd(10)输出了"20",而不是"100".
用下面的形式来写:
doAdd=new Function("iNum","alert(iNum+100)");
doAdd=new Function("iNum","alert(iNum+10)");
doAdd(10);
很显然,doAdd的值被改成指向不同对象的指针.函数名只是指向函数对象的引用值,行为就像其他指针一样.甚至可以使两个变量指向同一个函数:
doAdd=new Function("iNum","alert(iNum+100)");
var alsoDoAdd=doAdd;
doAdd(10);      //输出110
alsoDoAdd(10);  //输出110
变量doAdd被定义为函数,即指向Function对象的指针,然后alsoDoAdd被声明为指向同一函数的指针.用这两个函数都可以执行该函数的代码.输出结果相同.因为,如果函数名只是指向函数的变量,那么就可以理解把函数作为函数参数传递给另一个函数了.

doAdd=new Function("iNum","alert(iNum+100)");
function callAnotherFunc(fnFunction,arg){
    fnFunction(arg);
}
callAnotherFunc(doAdd,10);

所以,个人认为,把我们自己定义的函数可以理解为Function对象的实例.

Function有length属性,它声明了函数期望的参数个数.

function doAdd(iNum){
    alert(iNum+10);
}

alert(doAdd.length);
这是不是又和函数内部调用的arguments的length一样了呢?
分享到:
评论
2 楼 ajaxgo 2007-12-27  
lz是要告诉我们函数的知识,还是在问问题??话说上面那段见的眼熟,好像是《ajax基础教程》里面的???《javascript高级程序设计》里面的???还是《ajax实战》里面的???哎~~~what ever~~~~
1 楼 afcn0 2007-12-26  
当然不一样,函数的length在js里面是一个比较没用的东西,js函数的参数很宽松,你传不传传多少都没关系,只是一个是否有显示参数变量获取参数的问题,没有参数名也可以通过arguments对象取出来,arguments.length当然和函数.length不一样,函数.length是你的函数定义时候起了几个参数名称,arguments.,length是你在这次函数调用里面到底传近来了多少个参数,两者一点关系没有

相关推荐

    MATLAB的S-Function教程

    ### MATLAB的S-Function教程 #### S-Function概述 S-Function(系统函数)是MATLAB Simulink中一种强大的工具,它允许用户通过自定义的编程方式来扩展Simulink的功能。S-Function可以使用多种语言编写,包括MATLAB...

    MATLAB的S-Function编写指导

    ### MATLAB的S-Function编写指导 #### 第一章:S-Function概述 S-Function(系统函数)是一种强大的工具,用于扩展Simulink的功能。它允许用户通过自定义的算法来增强模型的能力。本章首先介绍了S-Function的基本...

    S-function模块案例详解(MATLAB程序)

    在MATLAB环境中,Simulink是用于系统建模和仿真的一种强大的工具,而S-function则是Simulink中的自定义功能模块,允许用户扩展Simulink的功能,以满足特定的计算需求。本篇将深入探讨S-function模块在蹦极系统案例中...

    通过 S-Function 集成 C 代码进行仿真

    S-Function(系统函数)是Simulink中一个强大的功能,允许用户使用C、C++、Fortran或其他编程语言来编写自定义模块,以便在Simulink模型中使用。 1. S-Function概念及仿真原理: S-Function是Simulink中的一个模块...

    s-function函数,s-function函数定义放置错误,matlab源码.zip

    在MATLAB环境中,S-Function(System Function)是一种高级的编程接口,用于创建自定义的仿真组件,可以扩展Simulink的功能。S-Functions允许用户深入到Simulink的内部,构建自己的动态系统模型,满足特定的计算需求...

    MATLAB中的S-function中文教程

    S-function分为两种主要类型:Legacy S-functions(旧版S-function)和Blockset S-functions(Blockset型S-function)。Legacy S-functions是基于M文件的,通常用C或C++编写,适用于MATLAB R2016b及更早版本。...

    VC6.0的__FUNCTION__宏支持

    **VC6.0的__FUNCTION__宏支持** 在C++编程中,`__FUNCTION__`是一个预定义的宏,它代表了当前函数的名称。在Visual C++ 6.0(简称VC6.0)环境下,这个宏尤其有用,因为它可以帮助开发者在调试和日志记录时获取函数...

    s-function函数,s-function函数定义放置错误,matlab

    在MATLAB环境中,s-function(系统函数)是一种高级的编程工具,用于构建定制的Simulink模块,以处理复杂的系统模型或实现特定的算法。在本案例中,s-function被应用来解决一个倒立摆的非线性问题。倒立摆是一个经典...

    C语言实现s-function源码,含全局变量

    在MATLAB/Simulink环境中,S-Function(Simulink Function)是一种用户自定义的模块,用于扩展Simulink库的功能。S-Functions可以用多种编程语言编写,包括C语言,因为C语言具有高效和灵活性,是实现复杂计算逻辑的...

    使用S-Function函数实现离散PID控制器,并建立simulink仿真模型

    在MATLAB的Simulink环境中,S-Function是一种强大的工具,允许用户自定义系统行为,以满足特定的仿真需求。本教程将详细讲解如何利用S-Function实现一个离散PID控制器,并建立相应的Simulink仿真模型。 首先,理解S...

    《MATLAB的S-Function编写指导》——完整版.pdf

    MATLAB的S-Function是一种强大的工具,用于在Simulink环境中创建自定义的动态系统模块。它允许用户利用C、C++或Fortran等底层语言的性能,来实现Simulink无法直接处理的复杂算法或特定硬件接口。这份《MATLAB的S-...

    S-Function使用手册.pdf

    S-Function 使用手册 S-Function 是 Simulink 中的一种自定义驱动库,允许用户创建自定义的模型和算法,以满足特定的仿真和设计需求。以下是 S-Function 使用手册的知识点总结: 一、S-Function 概念 * S-...

    s-function编写指导

    ### S-Function编写指导 #### 第一章:S-Function概述 **S-Function**(系统函数)是一种强大的工具,用于扩展Simulink®的功能。它允许用户自定义Simulink块的行为,从而实现更复杂的功能。本章节将详细介绍S-...

    Actionscript 中 Function的使用

    在ActionScript中,`Function`是一种非常核心的类型,它允许我们定义可执行的代码块,也就是函数。函数是ActionScript编程中的基本构建模块,它们可以封装特定的任务,使其可以在程序的不同部分重复使用,提高代码的...

    理解Javascript Function与Object

    理解Javascript Function与Object 在JavaScript中,Function和Object是两个非常重要的概念,它们之间存在着紧密的关系。在这篇文章中,我们将深入探讨Function和Object的关系,了解它们之间的联系和区别。 ...

    《MATLAB的S-Function编写指导》_matble_S-function_

    《MATLAB的S-Function编写指导》是一本专为初学者设计的教程,旨在帮助读者掌握MATLAB环境下的S-Function编程技术。S-Function,全称为Simulink Simulation Function,是MATLAB Simulink仿真环境中的一种特殊模块,...

Global site tag (gtag.js) - Google Analytics