首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

3.2  将值传递给函数

常常需要获得一些信息并将它交给函数使用。这称为将信息传递(pass)给函数。例如,看一下这个函数定义:

function playBall(batterup)

变量batterup是函数的参数。当调用函数时,可以将数据传递给函数。当处于函数内部时,此数据就保存在batterup变量中。可以向函数传递需要使用的任何数据,包括文本字符串、数字甚至其他JavaScript对象。例如,可以通过batterup变量传递文本字符串形式的玩家名称("Mantle"),或者他在玩家中的编号(7);但是将这两种形式混合使用是非常糟糕的想法,除非你确实知道自己在做什么。与所有变量一样,应该给用作函数参数的变量起合适的名字,这个名称应该能够说明变量的用途。

在一个函数中可以有多个参数。只需将它们放在圆括号中并用逗号分隔:

function currentScore(hometeam,visitors)

我们要强调,参数是变量,所以在调用函数时可以向它们传递不同的值。所以,下面这三个代码片段是等效的:

currentScore(6,4);

var homeScore = 6;

var visitingScore = 4;

currentScore(homeScore,visitingScore);

currentScore(6,3+1);

对于这三个示例,在currentScore()中,hometeam的值都是6,visitors的值都是4。

在这个示例中,我们将对脚本3-3做一些调整,从newCard()函数中去掉一些计算,将它们转移到一个带参数的函数中,这样代码的作用就更清晰了。产生的脚本见脚本3-4。

脚本3-4  通过将值传递给setSquare()函数,脚本更容易阅读和理解了

window.onload = newCard;

function newCard() {

   for (var i=0; i<24; i++) {

     setSquare(i);

   }

}

function setSquare(thisSquare) {

   var currSquare = "square" + thisSquare;

   var newNum = Math.floor(Math.random() * 75) + 1;

   document.getElementById(currSquare). innerHTML = newNum;

}

将值传递给函数的步骤如下:

(1) setSquare(i);

这行代码在newCard()函数中。我们将i的值传递给setSquare()函数。

(2) function setSquare(thisSquare) {

这定义了setSquare()函数,传递给它的是我们要更新的当前格子的编号。我们传递的是循环变量i。当函数接收这一数据时,数据保存在参数thisSquare中。可以这样理解:将i传递给函数,用这一数据填充参数thisSquare,但是函数实际上看不到i。在函数内部,它只知道thisSquare。

(3) var currSquare = "square" + thisSquare;

为了使脚本后面的getElementById()调用更清晰,我们创建并设置一个新变量:currSquare。这是要处理的当前格子的id。它将文本字符串square和thisSquare变量连接起来。

(4) document.getElementById(currSquare). innerHTML = newNum;

这一行找到具有currSquare指定的id的元素,并让它显示newNum。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论