如何重命名javascript对象函数hasOwnProperty?

时间:2019-04-02 10:31:16

标签: javascript hasownproperty

hasOwnProperty很长,使用长链if语句使我的代码不可读。

有没有一种方法可以将hasOwnProperty重命名为“ hop”,“ has”或仅仅是“ h”,这样我可以说类似

 if(req.body.h('first_name') && req.body.h('last_name'))
 {
    //....
 }

3 个答案:

答案 0 :(得分:2)

您可以仅引用原始的hasOwnProperty方法。

null

答案 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扩展名。我认为他们比他们值得的要麻烦得多。