Js经验之谈 属性与键重复解决方案

版权声明:欢迎转载,但请注明出处 https://blog.csdn.net/HaoDaWang/article/details/81173786

Js经验之谈 属性与键重复解决方案

今天在一个小项目中被大佬讲解了一番,虽然没有涉及到标题的问题,但还是引出了这个问题,先来看一个例子

let data = {name:"zhangsan", age:19}
data.hasOwnProperty("name") //true

看样子是不会有什么问题

如果是这样呢

let data = {name:"zhangsan", age:19, hasOwnProperty:"xxx"}
data.hasOwnProperty("name") //hasOwnProperty is not a function

这里的问题就是对象的属性和键重复了, 这就导致,当data想去调用hasOwnProperty的时候,调用了自己的hasOwnProperty,而自己的hasOwnProperty是自己的一个键,值为string,导致报错。

如何解决这个问题呢?

解决这个问题的根本,就是要让data调用Object的hasOwnProperty,而不要去访问自己的hasOwnProperty,这还不简单?

Object.prototype.hasOwnProperty.call(data, "name") //true

这些就是平常开发中的经验之谈

我还是乐于把它记录下来,也顺便可以帮助看到这篇文章同时也在寻找这个问题的答案的人:)

猜你喜欢

转载自blog.csdn.net/HaoDaWang/article/details/81173786