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(人们通常将其用于相同样式的非数字默认值)。