js 匿名函数与命名函数的区别

命名函数

var a = function (data) {
    console.log(console.log(data));
}

        $.post("url",{
            id:jqGridSingleRowColumn('list','id'),
            cosetypeid:jqGridSingleRowColumn('list','cosetypeid'),
            receivables:$("#receivables").val()
        },function (data) {
            a(data)
        })
        

发出一次post请求时浏览器控制台会输出两次,一次是正常的data,一次是undefined,见下图

clipboard.png

修改一下post的代码使用匿名函数,一次post请求只输出一次data结果

是什么原理导致了上面的运行差异?匿名函数部分代码该如何封装提高代码复用?

阅读 3.9k
4 个回答

console.log()这个方法的返回值是undefined,也就是第二行

console.log(data)能够向控制台输出data,也就是第一行

匿名函数与命名函数的区别,准确点来说应该是函数表达式和函数申明式的区别:这就跟JS解析器有关了。文字太多我不做赘述。 给你一个参考链接

代码逻辑问题,console.log 里面嵌套了 console.log
直接在success里写匿名function 和 调用变量 a 所指向的匿名function 结果是一样怼

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏