代码之家  ›  专栏  ›  技术社区  ›  user1hjgjhgjhggjhg

如何检查节点JS中是否存在模块功能

  •  0
  • user1hjgjhgjhggjhg  · 技术社区  · 7 年前

    我已经创建了一个模块并在其中定义了函数。有时我需要检查某个函数是否已经创建。

    例如

    var newyork = function() { 
       console.log("newyork");
    };
    
    var washington = function() { 
       console.log("washington");
    };
    
    exports.newyork = newyork;
    exports.washington = washington;
    

    现在,在不同的文件中,我想首先检查函数是否存在,比如:

    var cities = require('./city');
    
    if(cities.newyork) {
      console.log("city function exist");
    }
    else {
      //false
    }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Jonas Wilms    7 年前

    正如我在评论中所说,你所写的实际上是有效的,因为

    if(cities.newyork){
    

    检查是否 cities.newyork 真的 . 以下是事实:

    • 函数(这就是它在这里工作的原因)
    • 除0以外的数字
    • 除了空字符串
    • 对象/数组

    如果没有定义, 城市.纽约 undefined 那就是 虚伪的 (将输入 else 分支机构)

        2
  •  0
  •   Zohaib Ijaz    7 年前

    typeof cities.cityName=='函数'

    如果城市名称被分配给某个变量

    城市类型[cityName]=='功能'