【发布时间】:2017-05-29 17:17:35
【问题描述】:
我对 JavaScript 有一个普遍的问题。我正在尝试通过单独的方法在我的项目中构造函数中使用的长参数。最后,我能够生成一个带有必要参数的字符串,但是我不能将它作为参数插入到方法中。当我这样做时,我会从我正在使用的 API 中得到不同的错误。问题是,该方法中有几个参数,当我插入生成所述参数的方法时,该方法仅将这些参数视为一个长字符串。我尝试过使用 eval() 和 String() 方法,但是没有成功。
我知道那些生成的参数是正确的,因为当我使用控制台并一步一步地做所有事情时,我可以生成这些参数,然后在方法中手动复制它们,这很有效。
谁能告诉我如何强制浏览器将插入的字符串视为“已写入方法的代码”?
感谢并抱歉没有包含代码,我还不能向任何人展示。
编辑: 代码如下所示:
function buildArguments(args) {
var title='Something';
var interval=1;
var type='Something';
var build = '{title: {text: "' + title + '"},' +
'axis: { interval: ' + interval + '}, ' +
'dataType: { type: "' + type '"}};'
return build;}
function graph(args) {
var graph = new MyGraphAPI.Create(buildArguments(args));
graph.chart();}
它应该创建这样的东西:
var graph = new MyGraphAPI.Create(
{
title: {text: "Something"},
axis: {interval: 1},
dataType: {type: "Something"};
}
);
可能有一些错误,我匆忙编写代码只是作为示例。不过你应该明白了。
Edit2:我还应该补充一点,构建函数中的这些参数用于在 final 方法中创建最终的参数字符串(即使我没有在示例中包含它)。
【问题讨论】:
-
你能给我们举个例子看看代码是什么样的吗?
-
可以给我们展示一个用例吗?
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及必要的最短代码在问题本身中重现它。 — 如果您“无法向任何人展示它”,则构建一个测试用例,显示原理以及预期的输入和输出。
-
我预计问题的最佳解决方案将涉及
apply方法。 -
你为什么要写
build把字符串混在一起?唯一涉及的变量是属性值。只写var build = { title: { text: title }, axis: { interval: interval } dataType: { type: type } };并通过它有什么问题?
标签: javascript string arguments