首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >回调=回调函数() {};

回调=回调函数() {};
EN

Stack Overflow用户
提问于 2015-05-13 16:28:01
回答 1查看 325关注 0票数 2

以上代码行的目的是什么?我对“函数(){}”特别感到困惑。为什么是空函数?为了给代码行提供更多的上下文,下面是更完整的函数定义。

代码语言:javascript
运行
复制
this.detectQRCode = function(imageData, callback) {

     callback = callback || function() {};

     client.decode(imageData, function(result) {
       if(result !== undefined) {
         self.currentUrl = result;
       }
       callback(result);
     });
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-13 16:34:21

这只是一种“短路”的编码方式。它正在检查以确保回调不是未定义的。如果它是未定义的,那么它将为它分配一个匿名函数,以便回调()代码不会失败。

它相当于

代码语言:javascript
运行
复制
if(typeof(callback) == "undefined") callback = function(){};

这种方法的一个缺陷是,如果定义了回调,但不是函数,那么在不能调用的东西上使用callback()将导致错误。最好用

代码语言:javascript
运行
复制
if(toString.call(callback) != "[object Function]") callback = function(){};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30220463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档