返回动态值作为参数
Return dynamic values as arguments
如何将动态参数传递给函数,例如
var customvar = 1; //example
function iLike(){
console.log("you like ... (I know how to receive the arguments!)")
}
function getDrink(){
return (customvar == 1 ? ('pepsi','cola') : ('drpepper'));
}
iLike('peanuts', 'pizza', getDrink());
iLike('peanuts', 'pizza', 'pepsi', 'cola'); // = result
如何传递参数从getDrink()
正确 -我只做接收'可乐',而不是'百事可乐'。
如果你想发送动态数量的参数,使用apply
函数:
getDrink.apply(this, ['pepsi', 'cola']);
getDrink.apply(this, ['pepsi', 'cola', '7up']);
也可以使用call
函数:
getDrink.call(this, 'pepsi', 'cola');
getDrink.call(this, 'pepsi', 'cola', '7up');
如果您想访问函数中的所有参数,您可以使用arguments
数组
function getDrink() {
var first = arguments[0]; //pepsi
var secon = arguments[1]; //cola
}
如果您希望getDrink
返回包含'pepsi'
和'cola'
的数组,则语法为['pepsi', 'cola']
我不太确定这是不是你想要的……
注意,这仍然会给你:
iLike('peanuts', 'pizza', ['pepsi', 'cola'])
三个参数,其中最后一个是数组,而不是四个参数
如果您希望使用四个字符串参数调用iLike
,您可能希望像这样调用它:
function getDrink(){
return (customvar == 1 ? ['pepsi','cola'] : ['drpepper']);
}
iLike.apply(this, ['peanuts', 'pizza'].concat(getDrinks()))
可以使用arguments对象:
function iLike(){
var args = Array.prototype.slice.call(arguments); //convert to real array
console.log('I like '+args[0]+', '+args[1]+' and '+args[2]);
}
如果你想从getDrink
返回'pepsi'和'cola'(在一个变量中),你可以使用数组:
function getDrink(){
return (customvar == 1 ? ['pepsi','cola'] : 'drpepper');
}
解决方案是使用数组,并使用apply
。
var customvar = 0;
function iLike() {
console.log(arguments);
}
function getDrink() {
return (customvar == 1 ? ["pepsi", "cola"] : ["drpepper"]);
}
iLike.apply(this, ["peanuts", "pizza"].concat(getDrink()));
// ["peanuts", "pizza", "drpepper"]
相关文章:
- Facebook共享动态参数链接
- 在动态创建的元素中包含参数的事件处理程序
- Javascript 动态将参数化函数分配给 onclick
- Emberjs - 将参数动态绑定到视图
- 在 angularjs 的 ga 命令中设置动态参数
- 限制与AngularJS状态匹配的动态URL参数的最佳方式
- Jquery-将参数动态传递给函数
- 通过参数将传递的函数分配给动态创建的输入类型的onclick事件
- 如何为jQuery帖子输入动态数据参数
- Javascript动态锚点参数
- Jquery 在 Firefox 中的自定义对象参数(动态导航加载动态内容)
- 使用来自 json 对象的参数动态调用方法/函数
- 根据参数动态调整对象名称
- 根据泛型函数中的参数动态添加ajax处理程序
- 使用传递给函数的参数动态地从一组数组中检索值
- 使用参数动态引用json对象
- 由于某些原因,基于路由参数动态注入特定工厂会失败
- 用不同的参数动态初始化服务
- 如何根据参数动态构建JavaScript指令
- 基于函数参数动态调用javascript函数