1. JS 对象
JS 对象是什么?
- JS 对象就是一系列属性的集合,一个属性包含一个名和一个值。一个属性的值可以是函数,这种情况下属性也被称为方法。
JS 对象是什么?
- 在 JS 中,对象的类型是引用类型。
2. JS 对象的声明方法
这里介绍四种基础的声明方法:
//通过字面量形式声明对象
let obj = {
name: 'milk',
getName: function() {
return this.name;
}
}
// 通过 new 操作符声明对象
let obj = new Object();
obj.name = "milk";
// 通过函数声明的方式声明对象
function creatObj(nameVal) {
this.name = nameVal;
}
let obj = new createObj("milk");
/*
原型方式声明对象:
原型方式是将该对象的属性/方法写在他的prototype属性所指的对象上。
(每一个函数或者说对象都有一个prototype属性,这个属性以对象的形式存在)
*/
function drinking() {};
drinking.prototype.name = "milk";
drinking.prototype.pride = 8;
let obj = new drinking();
console.log(obj.name); // milk
3. 一些常用的操作方法
4.1) Object.keys(obj), Object.getOwnPropertyNames(obj)
let drinking = {
name : "milk"
};
// 给一个不可枚举属性 pride
Object.defineProperty(drinking, "pride", {
value : 8,
enumerable : false
});
// 获取可枚举的属性键
console.log(Object.keys(drinking)); // ['name']
// 获取所有的属性键
console.log(Object.getOwnPropertyNames(drinking)); // ['name', 'pride']
4.2) Object.values(obj)
// 获取可枚举对象的属性值
let drinking = {
name : "milk",
pride : 8
}
console.log(Object.values(drinking)); // ['milk', 8]
4.3) Object.entries(obj), Object.fromEntries()
let drinking1 = {
name : "milk",
pride : 8
}
// 获取可枚举对象的键值对,返回它们组成的数组
console.log(Object.entries(drinking1)); //[['name', 'milk'], ['pride', 8]]
// Object.fromEntries() 把键值对列表转换为对象
let arr = [['name', 'milk'], ['pride', 8]];
let drinking2 = Object.fromEntries(arr);
console.log(drinking2); // {name: 'milk', pride: 8}
4.4) Object.assign()
// 将一个或多个对象的属性复制给目标对象,是浅拷贝
let drinking1 = {
name1 : "milk",
pride1 : 8
};
let drinking2 = {
name2 : "tea",
pride2 : 12
};
let drinking = Object.assign(drinking1, drinking2);
console.log(drinking); // {name1: 'milk', pride1: 8, name2: 'tea', pride2: 12}
4.5) 扩展运算符
// 将一个或多个对象的属性复制给目标对象,是浅拷贝
// ... 可以用来创建对象,是一个浅拷贝
let drinking1 = {
name1 : "milk",
pride1 : 8
};
let drinking2 = {
name2 : "tea",
pride2 : 12
};
let drinking = {...drinking1, ...drinking2};
console.log(drinking); // {name1: 'milk', pride1: 8, name2: 'tea', pride2: 12}
4.6) 删除对象属性
let drinking = {
name : "milk",
pride : 8
};
delete drinking.pride;
console.log(drinking); // {name: 'milk'}
4.7) for…in遍历对象
// 遍历对象可枚举属性
let drinking = {
name : "milk",
pride : 8
};
for (i in drinking) {
console.log(i);
}
4.8) hasOwnProperty 检测属性
// 检测对象自身是否包含指定的属性
// 不检测原型链上继承的属性,即可以用来避免for...in遍历继承来的属性
let drinking = {
name : "milk",
pride : 8
};
console.log(drinking.hasOwnProperty('name')); // true
console.log(drinking.hasOwnProperty('weight')); // false
遗言
希望看到更多JavaScript的知识,请点赞投币加收藏,也可以直接添加博主微信:laoyin666it
感谢阅读,投个币呗!!