手机版

javascript的函数第1/3页

时间:2021-11-28 来源:互联网 编辑:宝哥软件园 浏览:

作者:F. Permadi译者:Sheneyan()英文原文:javascript函数介绍中文翻译(含示例):JavaScript的函数吴注:一篇非常好的关于函数的介绍性文章,个人觉得挺经典的。翻译列表:Function: function(未翻译的函数)declare:定义赋值:Assign functionbody : function body(即函数的内容)object : object : property : attribute unnamed : anonymous(此处未翻译成unnamed)面向对象编程3360面临相对编程类: class(如下面的类数据)。类型I转换为类数据类型)指针:指针重新分配:重新分配嵌套:嵌套特征:函数、特征本地/全局:本地/全局blueprint:蓝图(?)用户定义的:用户定义的instance:实例prototype:(除了标题,没有翻译)internal:内部构造函数:构造函数副本:函数:定义了以下方法来定义函数。所有这些都是有效的,但是在后台如何实现有一些不同。一般大家都用这个写法来定义一个函数:代码:函数名([参数]){函数体};示例D1:代码:function add(a,b){ return a b;} alert(add(1,2));//结果3当我们以这种方式定义函数时,函数的内容会被编译(但除非我们调用它,否则不会立即执行)。此外,您可能不知道,当创建该函数时,也会创建一个同名的对象。就我们的例子而言,我们现在有一个名为“add”的对象(为了更深入的理解,请看下面的函数:object部分。)匿名函数我们还可以通过为匿名函数分配变量名来定义它。示例D2代码CODE:var add=函数(a,b) {返回a,b;} alert(add(1,2));//结果3这段代码与前面的例子做了同样的事情。语法可能看起来很奇怪,但它应该会让您觉得函数是一个对象,我们只是为这一对指定了一个名称。把它想象成与var myVar=[1,2,3]相同的语句。以这种方式声明的函数内容也将被编译。当我们分配这样一个函数时,我们不一定要求它是匿名的。在这里,我做了与示例2相同的事情,但是我添加了函数名“theAdd”,并且我可以通过调用函数名或那个变量来引用该函数。示例D2ACODE:var add=函数ThAdd(a,b){ return a b;} alert(add(1,2));//结果3 alert(ThAdd(1,2));//结果也是3。以这种方式定义函数在面向对象编程中非常有用,因为我们可以像下面这样使函数成为对象的属性。代码: var my Object=new Object();myObject.add=函数(a,b){ return a b };//myObject现在有一个属性(或方法)叫做“add”//我可以用它myObject.add(1,2)如下;我们也可以通过使用运算符new来定义函数。这是定义函数最罕见的方法,除非有特殊原因,否则不推荐使用(可能的原因见下文)。语法如下:code : varname=new function([param 1 name,param2name,paramnname],函数体);示例D3:代码:var add=new Function('a ',' b ','返回a,b ';);alert(add(3,4));//结果7我这里有两个参数叫做a和b,函数体返回a和b的和,注意新的函数(.)使用大写的f而不是小写的f,这告诉javascript我们要创建一个Function类型的对象。还要注意,参数名和函数体都是作为字符串传递的。我们可以随意添加参数,javascript知道函数体是右括号前的最后一个字符串(如果没有参数,只能写函数体)。您不必将所有内容都写在一行上(使用\或使用字符串连接器来分隔长代码)。\标记告诉JavaScript在下一行查找字符串的剩余部分。

示例:示例D4代码: var add=new function ('a ',' b ',' alert '//note ' '(' add ' a '和' b ');\//和' \ '的不同用法返回a b;' );alert(add(3,4));//结果7这样定义函数会导致函数不被编译,可能比其他方式定义的函数慢。为什么,看看这个代码:示例D5代码:函数创建我的函数(我的运算符){返回新函数(' a ',' b ','返回a '我的运算符' b;);} var add=createmy function(“”);//create function ' add ' vars understant=create my function('-');//创建函数'减法' var multiple=创建我的函数(' * ');//创建函数“multiply”//测试函数alert(加法的结果=“add(10,2));//结果为12alert('减结果='减(10,2));//结果是8alert('乘法的结果='乘法(10,2));//结果为20 alert(add);这个有趣的例子创建了三个不同的函数,并通过实时传递不同的参数创建了一个新函数。因为编译器无法知道最终的代码会是什么样子,所以新Function(.)将不会被编译。那有什么好处?嗯,例如,如果你需要用户能够创建自己的功能,比如在游戏中,这个功能可能会很有用。我们可能需要允许用户向“玩家”添加“行为”。然而,同样,一般来说,我们应该避免使用这种形式,除非有特殊目的。函数:对象函数是javascript中对象的一种特殊形式。它是第一个[b]类数据类型。这意味着我们可以给它添加属性。这里有一些有趣的地方需要注意:对象的创建就像提到的那样。当我们定义一个函数时,javascript实际上是在后台为您创建一个对象。这个对象的名称就是函数名本身。这个对象的类型是函数。在下面的例子中,我们可能没有意识到这一点,但我们实际上已经创建了一个对象:它被称为球。1代码:函数Ball()//可能看起来有点奇怪,但是这个声明{//创建了一个名为ball i=1的对象;}警报(球的类型);//结果‘函数’我们甚至可以打印出这个对象的内容,它会输出这个函数的实际代码。示例2:点击警报(球);看看Ball的内容。属性添加我们可以向对象添加属性,包括对象函数。因为定义一个函数的本质就是创建一个对象。我们可以“偷偷”给函数添加属性。例如,我们在这里定义了函数Ball,并添加了属性callsign。CODE:function Ball() //可能看起来有点奇怪,但是这个声明{//创建了一个名为Ball的对象,您可以}//引用它或者给它添加属性Ball.callsign='The Ball ',如下所示;//向Ball添加属性alert(ball . call sign);//输出‘The Ball’指针因为函数是一个对象,我们可以给函数分配一个指针。在下面的例子中,变量ptr指向对象myFunction。代码:function myFunction(消息){ alert(消息);} var ptr=myFunction//ptr指向my functionptr(' hello ');//这个句子将执行myFunction:输出‘hello ’,我们可以运行这个函数,就像函数名被指针名替换一样。所以上面,这条线ptr(' hello ');和my Function(' hello ');意思是一样的。指向函数的指针在面向对象编程中非常有用。例如,当我们有多个对象指向同一个函数时(如下所示):示例4a代码:函数说出name(name){ alert(name);} var Object 1=new Object();//创建三个对象var Object 2=new Object();var object3=新对象();object1.sayMyName=sayName//将此函数分配给所有对象object2.sayMyName=sayNameobject3.sayMyName=sayNameobject 1 . SayMyName(' object 1 ');//输出“object1”对象2。say my name(' object 2 ');//输出“object2”对象3。say my name(' object 3 ');//输出‘object 3’(9500 . 163.com)。

因为只保存指针(不是函数本身),所以当我们改变函数对象本身时,指向该函数的所有指针都会改变。我们可以在下面看到:示例5:代码:函数myfunction () {alert (myfunction。消息);} myFunction.message=' oldvar ptr1=myFunction//ptr1指向myFunctionvar ptr2=myFunction//ptr2也指向myfunctionptr 1();//输出“old”ptr 2();//输出“old”my function . message=“new”;ptr 1();//输出“new”ptr 2();//输出‘新’123阅读下一页的全文。

版权声明:javascript的函数第1/3页是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。