如何调用函数并使用其返回值?如何在不同函数间传递参数使用?
问题修正与函数传参方案
现有代码核心问题
- 变量名不匹配:你给
module函数定义的形参名为access_token,但函数内部构造请求参数时调用的是未声明的header变量,运行时会直接抛出变量未定义的报错 - 调用逻辑缺失:你调用
module函数时需要主动传入access_token()返回的header对象,参数才会被目标函数正常接收使用 - 命名冲突风险:原
access_token函数名和参数名一致,后续迭代很容易出现命名混淆问题,建议调整函数名增加语义辨识度
修正后可运行代码
// 生成鉴权头的工具函数,返回包含Authorization的完整header对象 function getAccessTokenHeader() { var token = zauthorization().access_token; var header = { "Authorization":"Zoho-oauthtoken " + token } return header } // 拉取自定义模块数据的函数,接收header作为入参 function getCustomModule(header) { var options = { "method":"get", "headers": header } var url = "https://recruit.zoho.com/recruit/v2/CustomModule1" var res = UrlFetchApp.fetch(url,options) return JSON.parse(res) } // 后续新增的统计行数函数,同样可以直接复用header参数 function countModuleRows(header) { // 既可以直接用header发新请求,也可以复用已有模块数据避免重复请求 var moduleData = getCustomModule(header) // 按实际返回结构调整取值逻辑即可 return moduleData.data ? moduleData.data.length : 0 }
调用与传参示例
// 先调用鉴权函数拿到header对象 var requestHeader = getAccessTokenHeader() // 把header作为参数传入需要鉴权的目标函数即可 var moduleData = getCustomModule(requestHeader) var rowCount = countModuleRows(requestHeader)
通用传参规则
只要遵循以下逻辑即可实现任意函数间的参数传递:
- 定义目标函数时,在函数括号内声明要接收的参数名,函数内部统一使用该参数名操作
- 调用目标函数时,在括号内传入其他逻辑/其他函数返回的对应参数值即可
内容的提问来源于stack exchange,提问作者user17311472
相关产品推荐
相关产品推荐

