《JS 对象基本用法》

78 阅读1分钟

对象的定义

  • 无序的数据集合
  • 键值对的集合

声明对象的两种语法

let obj = {'name':'fank','age':18}  //第一种
let obj = new Object({'name':'fank','age':18})  //第二种
//第一种是第二种的简写版本  
//对象的内容用键值对的方式排列{属性名:属性值}
//键名是字符串不是标识符,可以包含任何字符
//引号可以省略,省略之后只能写标识符
//就算引号省略了,键名也还是字符串

如何删除对象的属性

let obj = {'name':'fank'}
delete obj.name    //第一种方式
delete obj['name']  //第二种方式
//即可删除obj name属性

如何查看对象的属性

查看对象的所有属性

let obj = {'name':'fank','age':18}
Object.keys(obj)  //可以查看自身所有属性

查看对象自身的共有属性

console.dri(obj)   //第一种
Object.keys(obj).__proto__  //第二种根据私有属性来查找

判断一个属性是自身的还是共有的

obj.hasOwnProperty()
 //方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性(也就是,是否有指定的键)
const object1 = {};
object1.property1 = 42;
//用法
console.log(object1.hasOwnProperty('property1')); 

两种方法查看属性

 obj['key']  //中括号法
 obj.key     //点语法
//坑新人语法obj[key],变量key值一般不为'key'

 修改或增加属性

let obj = {name:'frank'} //name是字符串
obj.name = 'frank'   //name是字符串
obj[name] = 'frank' //可以用这两种方式修改

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

'name' in obj可以判断obj对象不含xxx属性
obj.hasOwnProperty('name')用来判断一个属性是obj自身的还是共有的