JavaScript中常见对象的方法

        // 创建一个示例对象,包括对象和数组属性
        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"}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hz没头脑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值