我需要调用一个对象的函数并将其传递给变量。因为我需要对这个对象的函数进行多次调用,所以我试图创建一个只通过我传递的表单值来调用特定函数的处理程序。代码有效,但CFBuilder告诉我有一个错误(最后一行丢失分号)。我在铁路上。
local.myReport = seoUtility.init();
local.func = form.action;
local.report = local.myReport[local.func](form.user);
所以问题是:这段代码是否正确?我可以简单地忽略cfbuilder错误图标吗?
答案 0 :(得分:0)
如果您不希望CFBuilder唠叨您的语法,可以更改为:
local.myReport = seoUtility.init();
local.func = local.myReport[form.action];
local.myReport.func = local.func;
local.report = local.myReport.func(form.user);
这将local.func
设置为seoUtility
的实例,作为对要调用的实际函数的引用,保留其与父对象的关系。这样就不需要违反[]()
语法。
但是,这仅在seoUtility.init()
每次返回一个新实例时才有效,而不是应用程序共享的单例,在这种情况下,local.myReport.func()
的所有调用都会出现竞争条件