我想将变量“模板主体”传递给函数,这可能吗?
这是我的代码
function GetMenu(){
var templates = [{name:"maher",body:"<p>Maher test</p>"},{name:"Jeremy",body:"<p>Jeremy test</p>"}]
var payload = []
for (var i = 0; i<templates.length; i++){
var templateBody = templates[i].body
payload.push({
text : templates[i].name,
onclick: function(templateBody){tinymce.activeEditor.execCommand('mceInsertContent', false, templateBody);}
})
}
return payload
}
最佳答案
如果要调用函数,则只能传递变量。但是你不是。但是,由于所有JavaScript函数都是闭包,因此您仍然可以访问在更高范围内定义的任何变量。没有什么特别的事情要做。
代码的问题在于,您正在用参数templateBody
遮盖变量templateBody
。去掉它:
function(templateBody) -> function()
另一个问题是您正在循环内创建函数。这对于闭包不是很好,但是有解决方案:JavaScript closure inside loops – simple practical example