我有一个类似于this问题的问题,但问题略有不同。
所以我在cities.js
文件中有一个函数
module.exports = {
newyork: function (latitude,longitude) {
console.log("newyork is here");
}
如果我以if(cities.newyork){}
方式访问这个函数,那么true和false条件就可以正常工作,但是如果我以这种方式访问function
var city = 'newyork';
if(cities.city){
console.log("true");
}else{
console.log(false);
}
它总是在其他条件下运行。因为城市名称是动态的,所以我需要这个函数来工作。我也试过这种方法。
if(typeof cities.city === 'function'){
console.log("true");
}else{
console.log(false);
}
还是不走运。任何帮助都将不胜感激
发布于 2018-07-26 03:55:12
您要查找的语法是cities[city]
。现在,您的代码正在查找一个名为“city”的城市属性
发布于 2018-07-26 04:06:35
你应该使用,cities[city]
。这是因为,
在cities.city
中,“城市”将被视为“关键字名称”。因此它将转换为cities["city"]
但在cities[city]
中,它实际上会转换为cities["newyork"]
因此,请始终使用obj[dynamic_key_name]
。仅当您知道属性名称时,才能使用"."
访问属性。
https://stackoverflow.com/questions/51526672
复制相似问题