在PHP中你可以做这样惊人/可怕的事情:
$a = 1;
$b = 2;
$c = 3;
$name = 'a';
echo $$name;
// prints 1
Run Code Online (Sandbox Code Playgroud)
有没有办法用Javascript做这样的事情?
例如,如果我有一个var name = 'the name of the variable';可以获得名称变量的引用name?
我想创建一个快速函数,它将console.log变量名称和值.我希望在控制台中显示该函数的结果:foo: bar.
我对该函数的基本思想如下:
function varlog(var_name)
{
console.log(var_name + ": " + eval(var_name));
}
Run Code Online (Sandbox Code Playgroud)
我打电话的是:
function someRandomFunction()
{
var foo = "bar";
// ... some stuff happens
varlog("foo");
}
Run Code Online (Sandbox Code Playgroud)
如果foo是全局的,则此方法有效,但在提供的示例中不起作用.另一个只能全局运作的选择是使用window[var_name]而不是可怕的eval.
我不认为我问的是可能的,但我想我会把它扔出去.
我花了很多时间试图变懒.我目前的方法是console.log('foo: ' + bar);正常的.但现在我只想知道这是否可行.
我在搜索/创建现有内容时引用的其他一些问题:
-
编辑:varlog(foo)如果名称"foo"可以从变量派生,我很乐意打电话.
有没有办法用包含其名称的字符串引用Javascript变量?
例:
var myText = 'hello world!';
var someString = 'myText';
//how to output myText value using someString?
Run Code Online (Sandbox Code Playgroud) 可能重复:
有没有办法使用包含变量名称的字符串访问javascript变量?
JavaScript:通过名称字符串动态获取局部变量
一个简单的代码来说明我的问题 -
var chat_1 = "one";
var chat_2 = "two";
var id = "1";
var new = ?? variabalize( 'chat_' + id )
Run Code Online (Sandbox Code Playgroud)
我希望变量new赋值变量 - chat_1是"one"
我有两个动态命名的JavaScript函数..
function a1(){
//some codes
}
function a2(){
//some codes
}
function a3(){
//some codes
}
Run Code Online (Sandbox Code Playgroud)
这些函数上面由PHP生成肯定..
<?php
for($i = 1; $i <= $load_period->count; $i++){
?>
<script type="text/javascript">
function a<?php echo $i;?>(){
//javascript functions
}
</script>
<?php
}
?>
Run Code Online (Sandbox Code Playgroud)
现在我必须调用这两个函数..
for(var i= 1; i <= 3; i++){
// here the solution code ..
// doesn't work >> a+i+();
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的解决方案..