hasOwnProperty很长,使用长链if语句使我的代码不可读。
有没有一种方法可以将hasOwnProperty重命名为“ hop”,“ has”或仅仅是“ h”,这样我可以说类似
if(req.body.h('first_name') && req.body.h('last_name'))
{
//....
}
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以尝试使用Object.prototype
Object.prototype.hop = function(p) {
return this.hasOwnProperty(p);
}
演示:
Object.prototype.hop = function(p) {
return this.hasOwnProperty(p);
}
const object1 = new Object();
object1.property1 = 42;
console.log(object1.hop('property1')); // true
console.log(object1.hop('property2')); // false
答案 2 :(得分:0)
我将创建一个实用程序,该实用程序会接收要检查的属性列表。
function hasProperties(obj, ...names) {
return names.every(n => obj.hasOwnProperty(n))
}
if(hasProperties(req.body, 'first_name', 'last_name'))
{
//....
}
但是通常可以通过较短的检查来避免.hasOwnProperty()
调用,除非您实际上在代码中允许Object.prototype
扩展名。
是的,要直接回答问题,但是您想要的解决方案将需要这样的Object.prototype
扩展名。我认为他们比他们值得的要麻烦得多。