Javascript 对象在应用程序脚本中变为函数
我的应用程序脚本web应用程序中有此代码,我想帮助理解它。基本上,代码帮助我将部分视图加载到web应用程序中。在下面的代码中,它帮助从我的后端加载呈现搜索视图HTML。以下是要启动的代码:Javascript 对象在应用程序脚本中变为函数,javascript,google-apps-script,Javascript,Google Apps Script,我的应用程序脚本web应用程序中有此代码,我想帮助理解它。基本上,代码帮助我将部分视图加载到web应用程序中。在下面的代码中,它帮助从我的后端加载呈现搜索视图HTML。以下是要启动的代码: function loadView(options) { var id = typeof options.id === 'undefined' ? "app" : options.id; var callback = typeof options.callback ===
function loadView(options) {
var id = typeof options.id === 'undefined' ? "app" : options.id;
var callback = typeof options.callback === 'undefined' ? function(){} : options.callback
google.script.run.withSuccessHandler(function(html) {
document.getElementById(id).innerHTML = html
typeof options.params === 'undefined' ? callback() : callback(options.params)
})[options.func]()
}
function loadSearchView() {
loadView({func: 'loadSearchView',
callback: setDataForSearch})
}
我知道底部的loadSearchView()函数触发顶部的loadView()函数并发送一个对象。在该对象内部有一个键:值对,称为:
{
func.“loadSearchView”,
}
因此,代码随后激活另一个“loadSearchView()”,这是一个在web应用程序后端触发的函数,导致搜索部分HTML
我不明白的是:
google.script.run
对象的属性。当属性的名称已知且为硬编码时,可以使用点表示法访问属性,但也可以始终使用括号表示法访问属性,将属性的名称作为文本字符串
代码将运行服务器端函数,其名称由
object.func
表达式给出,该表达式的计算结果很可能是包含函数名称的文本字符串。后面的括号()
使JavaScript引擎将其作为函数运行,而不仅仅是返回属性,在本例中,属性是作为文本字符串的函数代码。这很有趣。我不知道。谢谢
function loadSearchView() {
loadView({func: loadSearchView(),
callback: setDataForSearch})
}