JavaScript 如何在另一个方法中使用该方法的 return 结果?

    <input type="text" id="text1" onclick="addId(this,1)">
    <input type="text" id="tex2t" onclick="addId(this,2)">
    <input type="text" id="text3" onclick="addId(this,3)">
    <input type="text" id="text4" onclick="addId(this,4)">
    <input type="text" id="text5" onclick="addId(this,5)"> 
    //例如onclick="addId(this,5)" 中的5是为了标记点击的是那个input。
    //当点击input还未弹出模态框前的到这个5;点击input之后 弹出模态框,选取模态框中的数据后返回给 id="text5",的value赋值,

方法一

//如果点击 onclick="addId(this,5)" 结果就是返回5
        function addId(obj,cid) {
           return cid; //使用alert(cid); 可以得到数字5; 
        }

方法二

//这个是模态框选取数据add(obj,id) id是数据的id,然后ajax查询后返回给text5,这里就简写了,
            function add(obj,id) {
               var b = addId();
               alert(b); //提示为定义 ,
            }

但是如果方法一改成

        function addId(obj,cid) {
            cid =1;
           return cid;  
        }

方法二

            function add(obj,id) {
               var b = addId();
               alert(b); //可以返回1
            }

我遇到的问题是不是应该提前把返回的数据 cid=5 保存起来,然后才可以使用方法二调用?
请问下我该如何做,或者有人可以指点一下我,我去学习谢谢!!

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

你的描述看得有点晕,var b = addId();这一步是异步的吧,那得保证这一步完成之后, 才能得到b的值,一般就得用闭包回调方法或者promise。
大概是要这么写:

 function addId(obj,callback) {
   callback(cid)
}

function add(obj,id) {
   addId(obj, function(cid) {
        var b = 'text'.cid;
        alert(b)
   });

}
4年前 评论
李小明 (楼主) 4年前
讨论数量: 2
朕略显ぼうっと萌

原谅我实在是没有看懂, 还有 return 是为了这个方法返回值供其他的变量或者方法使用,dom 中的 onclick 接受函数的 return 值意义是啥?

4年前 评论

你的描述看得有点晕,var b = addId();这一步是异步的吧,那得保证这一步完成之后, 才能得到b的值,一般就得用闭包回调方法或者promise。
大概是要这么写:

 function addId(obj,callback) {
   callback(cid)
}

function add(obj,id) {
   addId(obj, function(cid) {
        var b = 'text'.cid;
        alert(b)
   });

}
4年前 评论
李小明 (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!