返回值的函数的重要性是什么?

时间:2016-04-03 13:30:21

标签: function actionscript-3

我知道功能它用于节省重复任务的时间。我们可以将一个参数传递给函数来指定一个这样的值:

var myStar:Star;

function makeStar(myX:Number, myY:Number):void {
myStar = new Star();
myStar.x = myX;
myStar.y = myY;
addChild(myStar);
}

makeStar(50,50);
makeStar(150,150);

但是我的问题为什么我想用函数返回一个数字或字符串......这个用途的重要性是什么?

2 个答案:

答案 0 :(得分:1)

让我问你一个问题:在你的示例代码中,你如何操纵你创建的第一颗星移动,例如,向右移动100像素?

答案是你不能(至少不是一个简单的方法)。您第二次拨打myStar时会覆盖makeStar(..)

现在,如果makeStar(..)返回Star的实例而不是什么,会发生什么?

考虑以下示例:

var firstStar:Star;
var secondStar:Star;

function makeStar(_x:Number, _y:Number):Star
{
    var s = new Star();
    s.x = _x;
    s.y = _y;
    return s;
}

firstStar = makeStar(50, 150);
addChild(firstStar);
secondStar = makeStar(150, 150);
addChild(secondStar);

firstStar.x += 100;
secondStar.y += 100;

正如您所看到的,现在我们可以操纵两个星星,而不仅仅是您创建的最后一个星星。

回答你的问题:你通过函数返回值,这样你就可以继续使用这些值了。

答案 1 :(得分:0)

出于好奇,这种方法的缺点是什么?

var myStar:Star;

function makeStar(myX:Number, myY:Number, Name:String):void {
    myStar = new Star();
    myStar.x = myX;
    myStar.y = myY;
    myStar.name = Name;
    addChild(myStar);
}

makeStar(50,50, "firstStar");
makeStar(150,150, "secondStar");



getChildByName("firstStar").x = 200;