回调=回调||功能() {};



上述代码行的目的是什么。我专门用"函数(){}'来混淆。为什么是空功能?为了给代码行的更多上下文,这是更完整的功能定义。

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

它只是"短路"编码样式。它正在检查,以确保回调不确定。如果它不确定,则它将其分配为匿名函数,以使callback()代码不失败。

它等效于

if(typeof(callback) == "undefined") callback = function(){};

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

if(toString.call(callback) != "[object Function]") callback = function(){};

最新更新