我正在编写一些javascript类代码,它将接受' steps‘对象数组,并执行步骤导航。
我计划做的是,无论何时调用Next()方法,它都应该在下一步之前调用回调函数。
pseduo码
var mySteps = {[1,"Step1","javascriptCallbackStep1"],[2,"Step2","javascriptCallbackStep2"]};
var StepsManager.Next = function() {
var step = getcurrentStep();
if(step.javascriptCallbackStep1())
//go next
}这个javascriptCallbackStep1是不会被调用的,任何关于这个细节的帮助都将受到极大的感谢。
谢谢,
更新:回答,我想我问得不对。
我想要做的是将函数名作为字符串传递给javascript类属性,并期待它被调用。
passedValue = "MyFunctionName";
Class.Validate = passedValue;最后,由于打电话,它尝试了如下所示
Class.Validate();当然,它并不像在Class.Validate中那样工作--有字符串,也没有规范将它当作函数而不是字符串来处理。
所以我成功地尝试了
Class.Validate = function () { return window[passedValue](); };啊,真灵。不管怎样,谢谢。
发布于 2013-01-17 09:20:24
Javascript需要被赋予一个函数的引用来执行它。传递函数本身或执行@paul建议的操作是编写可预测/可靠的代码的最可靠方法。
您不应该将函数名作为字符串传递,但要知道您可以:
function someFunction(name) { return "hello " + name; }
var fn = window["someFunction"];
console.log(fn("test"))将窗口更改为函数所在的命名空间
发布于 2013-01-16 10:08:32
不如:
var mySteps = {
[1,"Step1", javascriptCallbackStep1 ],
[2,"Step2", javascriptCallbackStep2 ]
};
var StepsManager.Next = function() {
var step = getcurrentStep();
if(step[2]())
//go next发布于 2013-01-16 10:09:07
您的step是一个数组,没有javascriptCallbackStep1方法。试试这个:
var mySteps = {
{id:1,name:"Step1",callback:javascriptCallbackStep1},
{id:2,name:"Step2",callback:javascriptCallbackStep2}
};
var StepsManager.Next = function() {
var step = getcurrentStep();
if(step.callback && step.callback())
//go next
}https://stackoverflow.com/questions/14355679
复制相似问题