javascript中的对象

本文详细介绍了JavaScript中的对象,包括对象的定义、面向对象的特性如封装、抽象、继承和多态。展示了如何声明和使用对象,以及对象的解构赋值、属性管理、遍历方法。同时,讲解了对象属性的特性,如configurable、enumerable、writable和value,并演示了如何设置这些特性。
摘要由CSDN通过智能技术生成

对象是包括属性与方法的数据类型,是一种引用数据类型。
1.面向对象编程具有一下特征:
2.对象是属性和方法的集合即封装
3.将复杂功能隐藏在内部,只开放给外部少量方法,更改对象内部的复杂逻辑不会对外部调用造成影.响即抽象
4.继承是通过代码复用减少冗余代码
5.根据不同形态的对象产生不同结果即多态

基本声明与使用

var obj = {
    name: "js",
    age: 30,
    fun: function (){
        console.log(this.name,this.age);
    }
}
console.log(obj.name);
console.log(obj["age"]);
obj.fun();
输出:js
      30
      js 30

解构赋值

解构赋值是一种简洁的赋值特性,可以理解为分解一个数据结构。

var {name,age} = {name:"js",age: 18};
console.log(name,age);
输出:js 18

属性管理

1.添加属性

var obj = {name: "js"};
obj.age = 18;
console.log(obj.age);
输出:18

2.删除属性

var obj = {name: "js",age: 18};
delete obj.age;
console.log(obj.age);
输出:undefined

3.检测属性
hasOwnProperty检测对象自身是否包含指定的属性,不检测原型链上继承的属性。

var obj = {name:"js",age: 18};
console.log(obj.hasOwnProperty("name"));
输出: true

4.获取属性名

var obj = {name: "js",age: 18};
console.log(Object.getOwnPropertyNames(obj));
输出:['name', 'age']

对象遍历

for in 遍历
遍历的是键值

var obj = {name: "js",age: 18,val: "hello"};
for(key in obj){
    console.log(key);
    console.log(obj[key]);
}
输出:VM2177:3	name
		VM2177:4 js
		VM2177:3 age
		VM2177:4 18
		VM2177:3 val
		VM2177:4 hello

for of 遍历
遍历的是内容

var obj = {name: "js",age: 18,val: "hello"};
for(item of Object.values(obj)){
    console.log(item);
}
输出:js
		 18
		 hello

属性特征

查看特征

var obj = {name: "js",age: 30};
var desc = Object.getOwnPropertyDescriptors(obj);
console.log(desc);
输出:{name: {}, age: {}}age:
 configurable: trueenumerable: truevalue: 30writable: true[[Prototype]]: 
 Objectname: configurable: trueenumerable: true value: "js"writable: true[[Prototype]]: Object[[Prototype]]: Object
特性说明默认值
configurable能否使用delete、能否需改属性特性、或能否修改访问器属性true
enumerable对象属性是否可通过for-in循环,或Object.keys() 读取true
writable对象属性是否可修改true
value对象属性的默认值undefined

设置特征

var obj = {
    name: "js"
};
Object.defineProperty(
    obj,"name",{
             value: "后盾人",
             writable: false,
             enumerable: false,
             configurable: false
        }
);

属性name将不能被遍历、删除、修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值