Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.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
对象文字上的调用函数,由string-JavaScript表示_Javascript - Fatal编程技术网

对象文字上的调用函数,由string-JavaScript表示

对象文字上的调用函数,由string-JavaScript表示,javascript,Javascript,我正在使用history.js。在PurtStand函数的状态对象中,我想添加一个函数( CAR.IUTE()),或者 Po.[In()] />代码。C++中,我相信我可以使用函数指针。 然后在window.onpopstate上,我想引用该函数并调用它,但是我如何调用该函数呢?我不想使用eval,您可能不应该这样做,但是如果您确实想调用基于全局虚线路径名的函数,可以这样完成: 函数调用函数(名称、变量参数){ //将字符串拆分为单独的属性/方法名称 var parts=name.split(

我正在使用history.js。在PurtStand函数的状态对象中,我想添加一个函数(<代码> CAR.IUTE())<代码>,或者<代码> Po.[In()] />代码。C++中,我相信我可以使用函数指针。
然后在window.onpopstate上,我想引用该函数并调用它,但是我如何调用该函数呢?我不想使用
eval

,您可能不应该这样做,但是如果您确实想调用基于全局虚线路径名的函数,可以这样完成:

函数调用函数(名称、变量参数){
//将字符串拆分为单独的属性/方法名称
var parts=name.split('.');
//从全局对象的引用开始
var目标=窗口;
var-previousTarget=null;
对于(变量i=0;icallFunction(functionName,“Hello”);
不要引用,也不要调用函数。@JeremyBanks:当然我们在JavaScript中不称它们为“指针”,我们称它们为函数对象:-)您应该能够调用传递给pushState()的函数。如果没有,则将函数放在全局对象上,并将属性名称传递给pushState,使用键在onpopstate()中查找函数。当
$.html()或
$.load()时,没有人会抱怨
eval()
使用它……它还可以通过为任务动态生成完美的逻辑来提高许多应用程序的性能。我理解/为什么你不喜欢它,但是什么让你确信它有一天会消失?还有其他方面你可能没有考虑;mustach.js在去掉dy后会减慢速度namic代码,以便它可以在chrome扩展和紧凑的CSP中运行…它是一个对象文本中的静态函数,例如:var MyGreatObj={myStaticFunction:function myStaticFunction(foo){//do something}。那么,我怎么能像你说的那样“直接引用函数”?谢谢!
var reference=MyGreatObject.myStaticFunction;
,这样你以后就可以
reference(bar)
。你识别它的方式与调用它的方式相同,但去掉
(参数列表)
。顺便说一句,这个解决方案提醒大家如何发送函数的引用。但是history.js的pushState函数永远不会处理无法序列化的对象。因此,我制作了一个映射,定义了一个与字符串关联的函数。这样,你可以将字符串推送到pushState上,然后引用该函数当你把绳子拿回来的时候。