如何知道函数的参数中传递的var名称
How to know the var name passed in parameter for a function?
这就是我所拥有的(示例):
HTML:
<button id="playlist01"></button>
<button id="playlist02"></button>
<button id="playlist03"></button>
jQuery:
$(function() {
var playlist01 = [];
var playlist02 = [];
var playlist03 = [];
$("button").click(function() {
pushSong( $(this).attr("id") );
});
function pushSong(id) {
playlist??.push("whatever"); //playlist01, playlist02 or playlist03 ??
}
});
每个按钮都有一个数组,id为var名称。
当我点击一个<button>
标签时,我会以按钮的id作为参数调用函数,然后,我用函数中传递的id在数组中推送一些东西,但是,我怎么能知道playlist?
的名称呢?
谢谢你和问候!
将播放列表数组放在一个对象中,该对象的键与ID相对应。然后使用id检索正确的播放列表数组,然后推送。
var playlists = {
playlist01: [],
playlist02: [],
playlist01: [],
};
function pushSong(id) {
playlists[id].push("whatever");
}
所有变量的作用域都是最接近的闭包。所有函数都是闭包。您的变量位于外部函数的范围和上下文中,因此,如果您将外部函数的上下文传递给pushSong
函数,则可以执行以下操作:
function pushSong(id) {
this[id].push("whatever");
};
通过传递变量作用域所在的当前this
来调用函数:
pushSong.call(this, $(this).attr("id"));
了解有关JavaScript中作用域和上下文的更多信息。
使用switch语句,这样每个可能的播放列表都有一个case,否则需要使用一系列else-if语句。
http://www.w3schools.com/js/js_switch.asp
或者将其更改为使用双数组播放列表[][]和[1][]作为第一个播放列表[2][]作为第二个播放列表等。
相关文章:
- 如何使用var名称调用JSON数据
- 更改json/javascript对象var名称或从数字var中检索值
- Javascript,var name=1,“;类型名称“;给出“;字符串”;
- 如何知道函数的参数中传递的var名称
- var 函数名称与函数闭包中的名称分配
- 如何在JavaScript中使用var值名称作为函数名称
- Javascript将int添加到var名称中
- 如何在 javascript 中的变量名称中放置时间戳(例如 var a12439853 = 1)
- 获取密钥 Json 并使用名称 var 进行搜索
- 如何将函数名称与 var javascript 连接
- var NAME = 函数名称 (){ };- 函数名称使用两次
- 带有var名称的javascript getInterval调用
- 如何为路由实现另一个var参数名称
- 如何使用var名称调用函数
- 查找var值的名称不工作
- 可以用lodash从带有嵌套对象的对象中获取var名称吗
- 为什么可以't我在声明子名称空间时使用var
- jQuery ajax,数据字段的名称附加与var
- 使用jQuery,我需要捕获基于下拉id等于var名称的var信息
- 与 NodeJS 中的函数名称相同的 var 名称