JS对象中的属性

JS对象中的属性

属性的分类

属性分为两大类:
私有属性
公有属性

可以通过一个api 来查看函数的属性 :hasOwnProperty(),如果是私有属性则为true; 如果是公有属性,则为false。

<script>
var obj = {
     name:"gangwan",
     age:10
 };
 console.log(obj.hasOwnProperty("name")); // true 查看name是否是obj的私有属性
 console.log(obj.hasOwnProperty("age"));  // true 
 console.log(obj.hasOwnProperty("__proto__")); // false
 </script>

一个属性是私有属性还是公有属性,主要是看他对谁来说

添加属性

可以通过简单的赋值,向已存在的对象添加新属性。

person.nationality = "English";

删除属性

delete 关键词从对象中删除属性:

delete arr[0];
console.log(arr);

delete只能删除私有属性,不能删除公有属性

如果一个私有属性将共有属性覆重名 则会将那个公有属性覆盖

var a1 = ["a"];
console.dir(a1)
a1.push("b")
console.dir(a1)
a1.push = function () {
console.log("自己的push")
}  a1.push("c");

判断属性是否是属于一个对象

1.hasOwnProperty (判断是否是私有属性)
2.in (判断是否属于对象,不判断是公有属性还是私有属性)console.dir("age" in obj)

属性的特征

  • configurable 表示是否可以被删除 true表示可以删除
  • writable 表示是否可以修改 true表示可以修改
  • enumerable 是否可以枚举 是否可以输出 true表示可以输出
  • value 属性值 默认是und

通过Object.getOwnPropertyDescriptor 获取属性的特征

var obj = {
age:"10"
}
 console.log(Object.getOwnPropertyDescriptor(obj, "age"));
  // configurable: true
// writable: true
// enumerable: true
 // value: "10"     

感谢阅读

猜你喜欢

转载自blog.csdn.net/yang_fzz/article/details/107569866