【问题标题】:Is there a way to access variables that are only defined some of the time?有没有办法访问仅在某些时候定义的变量?
【发布时间】:2022-07-13 23:10:44
【问题描述】:

这是使用 'use strict' javascript,所以它不会像未声明的变量那样松懈。我的代码如下所示:

'use strict';

angular.module('myApp').factory('factoryName', function(){
   var plugins = cordova.require('cordova/plugin_list').metadata;
   ...
});

我遇到的问题是变量cordova 仅在某些时候被定义,如果不是,这会导致运行时错误。当我的应用程序在使用 cordova 的移动设备上构建 + 运行时,cordova 显然已定义,因此它运行良好 - 但它也可以在没有 cordova 的浏览器上运行,这会在上面的代码块运行时导致崩溃。

有没有办法解决这个问题?喜欢在使用之前检查cordova 是否已声明?问题是抛出的错误来自未声明的变量,而不是来自读取未定义的属性,因此执行if (cordova) {...} 仍然会失败。或者有没有其他方法可以使用cordova而不像这样引用它?

【问题讨论】:

    标签: javascript cordova


    【解决方案1】:

    我会做if (typeof cordova !== 'undefined'):

    if (typeof cordova !== 'undefined') {
        console.log('hello');
    }
    console.log('it didnt crash');

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-05
      • 2012-02-11
      • 2015-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      相关资源
      最近更新 更多