声明:我写的博客就是我的学习笔记,让我在忘记的时候可以在任何时候,任何地方,打开连接就可以看到,让我想起忘记的东西.
我的博客通常都有资料来源,只用于学习,没有任何其他目的,如果有版权问题,请跟我联系,如果对资料有什么疑问,可以留言!
我的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一样了呢?
分享到:
相关推荐
### MATLAB的S-Function教程 #### S-Function概述 S-Function(系统函数)是MATLAB Simulink中一种强大的工具,它允许用户通过自定义的编程方式来扩展Simulink的功能。S-Function可以使用多种语言编写,包括MATLAB...
### MATLAB的S-Function编写指导 #### 第一章:S-Function概述 S-Function(系统函数)是一种强大的工具,用于扩展Simulink的功能。它允许用户通过自定义的算法来增强模型的能力。本章首先介绍了S-Function的基本...
在MATLAB环境中,Simulink是用于系统建模和仿真的一种强大的工具,而S-function则是Simulink中的自定义功能模块,允许用户扩展Simulink的功能,以满足特定的计算需求。本篇将深入探讨S-function模块在蹦极系统案例中...
S-Function(系统函数)是Simulink中一个强大的功能,允许用户使用C、C++、Fortran或其他编程语言来编写自定义模块,以便在Simulink模型中使用。 1. S-Function概念及仿真原理: S-Function是Simulink中的一个模块...
在MATLAB环境中,S-Function(System Function)是一种高级的编程接口,用于创建自定义的仿真组件,可以扩展Simulink的功能。S-Functions允许用户深入到Simulink的内部,构建自己的动态系统模型,满足特定的计算需求...
S-function分为两种主要类型:Legacy S-functions(旧版S-function)和Blockset S-functions(Blockset型S-function)。Legacy S-functions是基于M文件的,通常用C或C++编写,适用于MATLAB R2016b及更早版本。...
**VC6.0的__FUNCTION__宏支持** 在C++编程中,`__FUNCTION__`是一个预定义的宏,它代表了当前函数的名称。在Visual C++ 6.0(简称VC6.0)环境下,这个宏尤其有用,因为它可以帮助开发者在调试和日志记录时获取函数...
在MATLAB环境中,s-function(系统函数)是一种高级的编程工具,用于构建定制的Simulink模块,以处理复杂的系统模型或实现特定的算法。在本案例中,s-function被应用来解决一个倒立摆的非线性问题。倒立摆是一个经典...
在MATLAB/Simulink环境中,S-Function(Simulink Function)是一种用户自定义的模块,用于扩展Simulink库的功能。S-Functions可以用多种编程语言编写,包括C语言,因为C语言具有高效和灵活性,是实现复杂计算逻辑的...
在MATLAB的Simulink环境中,S-Function是一种强大的工具,允许用户自定义系统行为,以满足特定的仿真需求。本教程将详细讲解如何利用S-Function实现一个离散PID控制器,并建立相应的Simulink仿真模型。 首先,理解S...
MATLAB的S-Function是一种强大的工具,用于在Simulink环境中创建自定义的动态系统模块。它允许用户利用C、C++或Fortran等底层语言的性能,来实现Simulink无法直接处理的复杂算法或特定硬件接口。这份《MATLAB的S-...
S-Function 使用手册 S-Function 是 Simulink 中的一种自定义驱动库,允许用户创建自定义的模型和算法,以满足特定的仿真和设计需求。以下是 S-Function 使用手册的知识点总结: 一、S-Function 概念 * S-...
### S-Function编写指导 #### 第一章:S-Function概述 **S-Function**(系统函数)是一种强大的工具,用于扩展Simulink®的功能。它允许用户自定义Simulink块的行为,从而实现更复杂的功能。本章节将详细介绍S-...
在ActionScript中,`Function`是一种非常核心的类型,它允许我们定义可执行的代码块,也就是函数。函数是ActionScript编程中的基本构建模块,它们可以封装特定的任务,使其可以在程序的不同部分重复使用,提高代码的...
理解Javascript Function与Object 在JavaScript中,Function和Object是两个非常重要的概念,它们之间存在着紧密的关系。在这篇文章中,我们将深入探讨Function和Object的关系,了解它们之间的联系和区别。 ...
《MATLAB的S-Function编写指导》是一本专为初学者设计的教程,旨在帮助读者掌握MATLAB环境下的S-Function编程技术。S-Function,全称为Simulink Simulation Function,是MATLAB Simulink仿真环境中的一种特殊模块,...