首页编程hasownproperty(Object的几个方法(defineProperty,hasOwnProperty...))

hasownproperty(Object的几个方法(defineProperty,hasOwnProperty...))

编程之家 2023-11-06 220次浏览

你是否对于hasownproperty和Object的几个方法(defineProperty,hasOwnProperty...)感到困惑?别担心,今天小编将为您揭开这个谜团,让我们一同探索吧!

hasownproperty(Object的几个方法(defineProperty,hasOwnProperty...))

对象的枚举(for in、hasOwnProperty、in、instanceof)

对象取属性值有两种方法:

使用 for...in遍历对象:

每次循环,会把对象中的一个字符串类型的属性名保存到变量key中。(可以使用 console.log(typeof key);验证)

为什么obj.key会输出undefined呢?是因为它被转换为obj["key"]后去obj中去找属性名为“key”的值,而不是把key识别为一个变量,在obj中并没有定义属性“key”,所以是undefined。

那现在给obj添加属性“key”:

会发现每次循环输出属性名为“key”的属性值。

hasownproperty(Object的几个方法(defineProperty,hasOwnProperty...))

使用 for...in变量对象时若其原型上有自定义属性也会拿到。

那如果不想要输出原型上的属性,只要自身属性怎么做呢?

hasOwnProperty(“属性名”)可以验证属性是否为对象本身所具有,返回布尔值。

上面循环改为

“属性名” in对象判断对象是否有这个属性(包括原型上的属性),即对象是否能访问到这个属性,返回布尔值。

A instanceof B判断A对象的原型链上是否有B的原型对象。

hasownproperty(Object的几个方法(defineProperty,hasOwnProperty...))

Object的几个方法(defineProperty,hasOwnProperty...)

使用Object.defineProperty()定义对象属性时,如已设置 set或 get,就不能设置 writable和 value中的任何一个了,不然会报错。

Object的hasOwnProperty()方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。

同defineProperty

getPrototypeOf此方法可以获取指定对象的原型对象

isPrototypeOf方法用于测试一个对象是否存在于另一个对象的原型链上。

列出一个由指定对象的所有自身属性的属性名(包括不可枚举属性但不包括Symbol值作为名称的属性)组成的数组。

区别于Object.keys()。

getOwnPropertyDescriptors方法用来获取一个对象的所有自身属性的描述符。

getOwnPropertyDescriptor方法用来获取一个对象的指定属性的描述符。

非常感谢您的阅读!我们希望本文对于解决您关于hasownproperty的问题提供了一些有价值的信息。如果您还有其他疑问,我们将很乐意为您提供进一步的帮助。

乐至网,乐至县有哪些乡镇 东营做网站?我想做网站,东营那家做的最好