Javascript:为什么hasOwnProperty是必需的?

时间:2019-01-17 06:33:56

标签: javascript

我只是在做一些练习题,一个问题问我是否有一个函数,该函数接受一个对象和一个键,然后检查该键是否存在于对象中。如果是这样,则返回true,否则返回false,所以我这样写道:

  function check(obj,key) {
     if (!!obj[key]) {
       return true;
     } else { return false}

  }

自动检查器一直说这是不正确的。当我将其切换为if (obj.hasOwnProperty(key)时,测试用例通过了。
他们不是在完成同一件事吗?

编辑:我看到每个人都说hasOwnProperty对于检查属性是否也没有继承是必要的。我对此进行了测试:

 function Car() {
   this.wheels = 4;
   this.engines = 1;
 }

 function Ferrari() {
   Car.call(this);

   this.price = 200000;
   this.color = 'red';
 }

如果我执行let obj = new Ferrari(),然后执行obj.hasOwnProperty(“ wheels”),我就回来了-既然它是继承的属性,那不应该回来吗?

0 个答案:

没有答案