Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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
Javascript 根据传递的参数调用js函数_Javascript_Arguments - Fatal编程技术网

Javascript 根据传递的参数调用js函数

Javascript 根据传递的参数调用js函数,javascript,arguments,Javascript,Arguments,我试图在另一个函数中调用js函数,但使用参数指定该函数。根据传递的参数,它将调用不同的函数 function toggle(n){ if (sessionStorage['toggle'+n]== 0){ check+n(); } else } 因此,例如,如果参数'ballos'作为n传递,那么它将调用函数checkballos()“check+n();”当前不在此处工作。对不起,我没有简单

我试图在另一个函数中调用js函数,但使用参数指定该函数。根据传递的参数,它将调用不同的函数

   function toggle(n){
        if (sessionStorage['toggle'+n]== 0){

            check+n();      
        }
        else 
    }
因此,例如,如果参数'ballos'作为n传递,那么它将调用函数checkballos()<代码>“check+n();”当前不在此处工作。对不起,我没有简单的js语法

如果您这样做:

    if (sessionStorage['toggle'+n]== 0){

        window["check" + n]();
    }
如果您这样做,将起作用

    if (sessionStorage['toggle'+n]== 0){

        window["check" + n]();
    }

将起作用

如果在全局范围(浏览器)中定义了该功能,则可以执行以下操作:

window["check"+n]();
或者一些租户,比如Node.js,您可以从全局对象访问它

global["check"+n](); 
如果它是其他对象的一部分,那么您也会这样做

 obj["check"+n]();

也可以使用
[]
约定访问对象上定义的函数和属性。i、 e
obj[“propFuncName”]
将为您提供对它的引用,因此在使用方法时,您可以添加
()
来调用它。

如果函数是在全局范围(浏览器)中定义的,您可以执行以下操作:

window["check"+n]();
或者一些租户,比如Node.js,您可以从全局对象访问它

global["check"+n](); 
如果它是其他对象的一部分,那么您也会这样做

 obj["check"+n]();

也可以使用
[]
约定访问对象上定义的函数和属性。i、 e
obj[“propFuncName”]
将为您提供对它的引用,因此在使用方法时,您可以添加
()
来调用它。

如果函数是全局函数,您可以执行以下操作:

window["check" + n]();
或者,您可以将函数放在如下对象中:

myNamespace = {};
myNamespace.checkSomething = function(){ /* ... */ }

// call it like this:
myNamespace["check" + n]();

如果函数是全局函数,则可以执行以下操作:

window["check" + n]();
或者,您可以将函数放在如下对象中:

myNamespace = {};
myNamespace.checkSomething = function(){ /* ... */ }

// call it like this:
myNamespace["check" + n]();

到目前为止,答案是正确的,但缺乏解释

在JavaScript中,当函数名为字符串时,不能按名称调用该函数。您可以做的是按名称从对象中检索一个值,如果该值恰好是一个函数,则可以调用它。例如:

var myObject={};
myObject.myFunction=function(){alert('test!');};
//获取名为“myFunction”的“myObject”的属性`
var theFunctionLookup=myObject['myFunction'];
//因为该属性是一个函数,所以可以调用它!
函数lookup();
在浏览器中,全局范围中定义的函数将附加到
窗口
对象。例如,这项工作:

function myFunction(){alert('test');}
var theFunctionLookup=window['myFunction'];
函数lookup();
您可以将最后两行缩短为一行:

function myFunction(){alert('test');}
//查找并在一行中调用该函数。
窗口['myFunction']();
出于同样的原因,您可以使用动态计算的字符串来查找函数

函数checkBalloon(){
警报(“检查气球”);
}
功能切换(n){
if(会话存储['toggle'+n]==0){
窗口[‘检查’+n]();
检查+n();
}
}
切换(“气球”);

到目前为止,答案是正确的,但缺乏解释

在JavaScript中,当函数名为字符串时,不能按名称调用该函数。您可以做的是按名称从对象中检索一个值,如果该值恰好是一个函数,则可以调用它。例如:

var myObject={};
myObject.myFunction=function(){alert('test!');};
//获取名为“myFunction”的“myObject”的属性`
var theFunctionLookup=myObject['myFunction'];
//因为该属性是一个函数,所以可以调用它!
函数lookup();
在浏览器中,全局范围中定义的函数将附加到
窗口
对象。例如,这项工作:

function myFunction(){alert('test');}
var theFunctionLookup=window['myFunction'];
函数lookup();
您可以将最后两行缩短为一行:

function myFunction(){alert('test');}
//查找并在一行中调用该函数。
窗口['myFunction']();
出于同样的原因,您可以使用动态计算的字符串来查找函数

函数checkBalloon(){
警报(“检查气球”);
}
功能切换(n){
if(会话存储['toggle'+n]==0){
窗口[‘检查’+n]();
检查+n();
}
}
切换(“气球”);

好的。。。。出于兴趣,窗户部分是什么?我以为我只是没有正确地编写语法?您正在将方法作为对象属性访问。代码中设置的每个全局变量或函数(未设置为另一个函数)都将在窗口对象中设置。仅键入“check()”调用函数,与调用“window.check()”或“window[“check”]()”相同。确定。。。。出于兴趣,窗户部分是什么?我以为我只是没有正确地编写语法?您正在将方法作为对象属性访问。代码中设置的每个全局变量或函数(未设置为另一个函数)都将在窗口对象中设置。仅键入“check()”调用函数,与调用“window.check()”或“window[“check”]()”相同。谢谢,这是有效的。但是,我必须仔细阅读函数的范围,因为我不确定使用哪个函数。不过,谢谢你的帮助。谢谢,这很有效。但是,我必须仔细阅读函数的范围,因为我不确定使用哪个函数。不过,谢谢您的帮助。请考虑是否可以做一个通用的<代码>检查< /代码>,使用参数<代码> n>代码>。考虑是否可以做一个通用的<代码>检查< /代码>,它采用参数<代码> n< /代码>。