Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 使默认参数=变量的最佳方法? 我有一个变量,一个简洁的函数让我们考虑它看起来是这样的: private function applyDiscount (value:Number):Number { return value*_discount; //_discount defined somewhere else }_Apache Flex_Actionscript 3_Parameters_Default - Fatal编程技术网

Apache flex 使默认参数=变量的最佳方法? 我有一个变量,一个简洁的函数让我们考虑它看起来是这样的: private function applyDiscount (value:Number):Number { return value*_discount; //_discount defined somewhere else }

Apache flex 使默认参数=变量的最佳方法? 我有一个变量,一个简洁的函数让我们考虑它看起来是这样的: private function applyDiscount (value:Number):Number { return value*_discount; //_discount defined somewhere else },apache-flex,actionscript-3,parameters,default,Apache Flex,Actionscript 3,Parameters,Default,好的,这很好,但是我想调用这个函数,并且能够传递我自己的折扣,但是仍然使用_折扣作为默认值 我可以这样做: private function applyDiscount (value:Number, discount:Number = 50):Number { return value*discount; } 这将使折扣默认为50,但我不知道它在authortime,所以我需要这样做,但它不允许在Flex private function applyDiscount (

好的,这很好,但是我想调用这个函数,并且能够传递我自己的折扣,但是仍然使用_折扣作为默认值

我可以这样做:

private function applyDiscount (value:Number, discount:Number = 50):Number
    {
    return value*discount;
    }
这将使折扣默认为50,但我不知道它在authortime,所以我需要这样做,但它不允许在Flex

private function applyDiscount (value:Number, discount:Number = _discount):Number
    {
    return value*discount;
    }
所以我的问题是,实现与Flex中最后一个示例相同的效果的最佳方法是什么?


谢谢。

可能将折扣公开为公共属性,以便您可以将其单独设置为方法调用。e、 g

public function get discount():Number{ 
    return _discount; 
} 

public function set discount(param:Number):void { 
    _discount = param; 
}

private function applyDiscount (value:Number):Number
{
    return value*_discount; //_discount defined somewhere else
}
附加功能在评论中看起来很愚蠢,所以我在这里添加了它。。。基本上,您可以将折扣设置为可选参数

function applyDiscount(value:Number, ... rest):void {
    if(rest.length > 0) {
        return value*rest[0];
    } else {
        return value*_discount; //_discount defined somewhere else
    }
}

applyDiscount(100, 10); // 10 discount...
applyDiscount(100); // default discount...

可能将折扣公开为公共属性,以便可以将其单独设置为方法调用。e、 g

public function get discount():Number{ 
    return _discount; 
} 

public function set discount(param:Number):void { 
    _discount = param; 
}

private function applyDiscount (value:Number):Number
{
    return value*_discount; //_discount defined somewhere else
}
附加功能在评论中看起来很愚蠢,所以我在这里添加了它。。。基本上,您可以将折扣设置为可选参数

function applyDiscount(value:Number, ... rest):void {
    if(rest.length > 0) {
        return value*rest[0];
    } else {
        return value*_discount; //_discount defined somewhere else
    }
}

applyDiscount(100, 10); // 10 discount...
applyDiscount(100); // default discount...

实际上我有两个折扣,第一个折扣,然后在促销期间有一个额外的折扣,我需要向用户显示原价、折扣价和额外折扣价。嗯,这不是你要求的。。。在任何情况下,您都可以将折扣设置为可选参数。e、 函数applyDiscount(value:Number,…rest):void{if(rest.length<0){return valuerest[0];}else{return value_discount;///_discount定义在其他地方}}我实际上有两个折扣,第一个折扣,然后在促销期间还有一个额外的折扣,我需要向用户显示原价、折扣价和额外折扣价。嗯,这不是你要求的。。。在任何情况下,您都可以将折扣设置为可选参数。e、 函数applyDiscount(value:Number,…rest):void{if(rest.length<0){return valuerest[0];}else{return value_discount;///_discount定义在其他地方}可能更像是一个样式选择,但我通常更喜欢NaN作为默认参数,它将被这样替换。从概念上讲,它更接近于null(人们通常使用它来表示相同样式的非数字默认值)。可能更多的是一种样式选择,但我通常更喜欢NaN表示将被替换的默认参数。从概念上讲,它更接近于null(人们通常将其用于相同样式的非数字默认值)。