JS 对象基本用法

193 阅读1分钟

声明对象的两种语法

1.1 通过new关键字创建对象

var obj = new Object();
// 添加属性
obj.name = "小明";
// 添加方法
obj.sleep = function () {
    console.log(this.name + "在睡觉");
};

1.2通过字面量创建对象

var obj = {
    name : "xiaoming",
    age : "18",
    show : function (girlfriend) {
        console.log(this.name + "的女朋友是" + girlfriend);
    }
};

如何删除对象的属性


// 使用delete 关键字删除 会删除对象的键值对
let newObj = {
    cc: 'cc';
}; 
delete newObj.cc;

//重新赋值
newObj.cc = undefined;

如何查看对象的属性

 const dayObj = {
     monday: '周一' 
 }
 
 console.dir(dayObj) // 可以查看对象上完整的属性 包括原型
 console.log(Object.keys(dayObj)) // 查看对象的键, 返回值是一个list
 console.log(Object.values(dayObj)) // 查看对象每个键的之, 返回值是一个list
 

如何修改或增加对象的属性

 const dayObj = {
     monday: '周一';
 }
 
dayObj.tesday = '周二'; // 给对象添加一个属性
dayObj.monday = '星期一; // 如果对象上有要添加的属性就覆盖之前的属性值
 

'name' in obj和obj.hasOwnProperty('name') 的区别

hasOwnPropert方法

判断一个属性是自身的还是共有的obj.hasOwnProperty('toString')

const object1 = {};
object1.property1 = 42;

console.log(object1.hasOwnProperty('property1'));
// expected output: true

console.log(object1.hasOwnProperty('toString'));
// expected output: false

console.log(object1.hasOwnProperty('hasOwnProperty'));
// expected output: false

object in

指定的属性在指定的对象或其原型链中,则in 运算符返回true

const car = { make: 'Honda', model: 'Accord', year: 1998 };

console.log('make' in car);
// expected output: true

delete car.make;
if ('make' in car === false) {
  car.make = 'Suzuki';
}

console.log(car.make);
// expected output: "Suzuki"