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

例如

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
}

最佳答案

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

if(cities.newyork){


检查cities.newyork是否真实。以下内容是真实的:


功能(这就是为什么它在这里起作用的原因)
除0以外的数字
除空字符串外
对象/数组


如果未定义,则cities.newyork将是undefined,这是虚假的(将进入else分支)

07-25 23:43