// 创建一个示例对象,包括对象和数组属性
const obj = {
name: 'John',
age: 30,
address: {
street: '123 Main St',
city: 'New York'
},
hobbies: ['reading', 'playing guitar', 'hiking']
};
常见方法
//增加
const city = {
gz:'广州',
sz:'深圳',
jy:'揭阳'
}
//如果赋值的属性是不存在的则执行增加对象属性的操作
//如何赋值的属性是存在的则执行修改的操作
obj.city = city
//通过JOSN.stringify()方法将对象转化为JOSN数据
console.log(JSON.stringify(obj));//{"name":"John","age":30,"address":{"street":"123 Main St","city":"New York"},"hobbies":["reading","playing guitar","hiking"],"city":{"gz":"广州","sz":"深圳","jy":"揭阳"}}
//删
delete obj.age
console.log(JSON.stringify(obj));//{"name":"John","address":{"street":"123 Main St","city":"New York"},"hobbies":["reading","playing guitar","hiking"],"city":{"gz":"广州","sz":"深圳","jy":"揭阳"}}
//查 通过 对象.属性名 访问
console.log(obj.name);//John
//查 通过 对象.['属性名'] 访问
console.log(obj['haha']);//haha
console.log(obj['name']);//John
//改
obj.name = 'Hz没头脑'
console.log(JSON.stringify(obj));//{"name":"Hz没头脑","address":{"street":"123 Main St","city":"New York"},"hobbies":["reading","playing guitar","hiking"],"city":{"gz":"广州","sz":"深圳","jy":"揭阳"}}
高级用法(使用Object内置的方法)
const obj = {
name: 'John',
age: 30,
address: {
street: '123 Main St',
city: 'New York'
},
hobbies: ['reading', 'playing guitar', 'hiking']
};
// Object.keys(obj):返回对象的所有可枚举属性的键名数组
const keys = Object.keys(obj);
console.log(keys);
// 输出: ["name", "age", "address", "hobbies"]
// Object.values(obj):返回对象的所有可枚举属性值的数组
const values = Object.values(obj);
console.log(values);
// 输出: ["John", 30, {street: "123 Main St", city: "New York"}, ["reading", "playing guitar", "hiking"]]
// Object.entries(obj):返回对象的所有可枚举属性键值对的数组
const entries = Object.entries(obj);
console.log(entries);
// 输出: [["name", "John"], ["age", 30], ["address", {street: "123 Main St", city: "New York"}], ["hobbies", ["reading", "playing guitar", "hiking"]]]
// Object.hasOwnProperty(prop):检查对象是否具有指定属性
const hasAge = obj.hasOwnProperty('age');
console.log(hasAge);
// 输出: true
// Object.assign(target, ...sources):将源对象的属性复制到目标对象中
const source = { email: 'john@example.com' };
const mergedObj = Object.assign(obj, source);
console.log(mergedObj);
// 输出: {name: "John", age: 30, address: {street: "123 Main St", city: "New York"}, hobbies: ["reading", "playing guitar", "hiking"], email: "john@example.com"}
// Object.create(proto, [propertiesObject]):使用指定的原型对象创建一个新对象
const newObj = Object.create(obj);
console.log(newObj);
// 输出: {}(继承了obj的原型)
// Object.defineProperty(obj, prop, descriptor):定义或修改对象的属性
Object.defineProperty(obj, 'job', {
value: 'Engineer',
writable: true,
enumerable: true,
configurable: true
});
console.log(obj);
// 输出: {name: "John", age: 30, address: {street: "123 Main St", city: "New York"}, hobbies: ["reading", "playing guitar", "hiking"], email: "john@example.com", job: "Engineer"}
// Object.getOwnPropertyDescriptor(obj, prop):返回指定对象属性的属性描述符
const descriptor = Object.getOwnPropertyDescriptor(obj, 'age');
console.log(descriptor);
// 输出: {value: 30, writable: true, enumerable: true, configurable: true}
// Object.getPrototypeOf(obj):返回对象的原型
const prototype = Object.getPrototypeOf(obj);
console.log(prototype);
// 输出: {}(Object的原型)
// Object.setPrototypeOf(obj, prototype):设置对象的原型
const newPrototype = { greetings: 'Hello' };
Object.setPrototypeOf(obj, newPrototype);
console.log(obj);
// 输出: {name: "John", age: 30, address: {street: "123 Main St", city: "New York"}, hobbies: ["reading", "playing guitar", "hiking"], email: "john@example.com", job: "Engineer"}
// 原型为: {greetings: "Hello"}