我想将变量“template Body”传递给函数,这可能吗? 我的代码
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
参数 模板主体
。删除它:
function(templateBody) -> function()
另一个问题是您正在循环内创建一个函数。这对于闭包来说效果不太好,但有解决方案:JavaScript closure inside loops – simple practical example
关于javascript - 将变量传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32333696/