javascript的函数

2019-06-03 07:56:18丽君

  当我们指派一个这样的函数的时候,我们并不一定要求必须是匿名函数。在这里,我作了和ExampleD2一样的事情,但我加了函数名“theAdd”,而且我可以通过调用函数名或者是那个变量来引用函数。

Example D2A


[Copy to clipboard]CODE:
var add=function theAdd(a, b) 
{                     
  return a+b;
}                     
alert(add(1,2));           // 结果 3
alert(theAdd(1,2));        // 结果也是 3

  使用这种方式来定义函数在面向对象编程中是很有用的,因为我们能像底下这样使一个函数成为一个对象的属性。


[Copy to clipboard]CODE:
var myObject=new Object();
myObject.add=function(a,b){return a+b};  
// myObject 现在有一个叫做“add”的属性(或方法)
// 而且我能够象下面这样使用它
myObject.add(1, 2);

  我们也能够通过使用运算符new来定义一个函数。这是一个最少见的定义函数的方式并且并不推荐使用这种方式除非有特殊的理由(可能的理由见下)。语法如下:


[Copy to clipboard]CODE:
varName=new Function([param1Name, param2Name,...paramNName], functionBody);

Example D3: 


[Copy to clipboard]CODE:
var add=new Function("a", "b", "return a+b;");
alert(add(3,4));        // 结果 7

  我在这里有两个参数叫做a和b,而函数体返回a和b的和。请注意new Function(...)使用了大写F,而不是小写f。 这就告诉javascript,我们将要创建一个类型是Function的对象。 还要注意到,参数名和函数体都是作为字符串而被传递。我们可以随心所欲的增加参数,javascript知道函数体会是右括号前的最后一个字符串(如果没有参数,你能够只写函数体)。你没必要将所有东西都写在一行里(使用或者使用字符串连接符+来分隔长代码)。标记告诉JavaScript在下一行查找字符串的其余部分。例子如下:

Example D4 


[Copy to clipboard]CODE:
// 注意 "+"
// 和 ""的不同用法
var add=new Function("a", "b", 
  "alert" +                      
  "('adding '+a+' and ' +b);