Kasan Blog

声明对象的两种语法(嗨)

1、字面量形式(literal syntax)

var person = {'name':'kasan','age':18,'gander':'man'};

2、new Object()形式

var person = new Object('name':'kasan','age':18,'gander':'man');
或
var person = new Object();
person.name="kasan";
person.age=18;
person.sex="man";

如何删除对象的属性

let obj={'name':'kasan','age':18}
 
//现在删除name

delete obj.name

//那我怎么知道它到底有没有删掉呢

//用这个
'name' in obj  
//如果返回false就是删了,如果为true就是还在

//如果我想知道它有没有删,如果没有删的话是不是undefined的值
//就用
'name' in obj&&obj.name===undefined

如何查看对象的属性

查看自身所有属性

Object.keys()

查看自身+共有属性

console.dir()

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

obj.hasOwnProperty('toString')

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

直接赋值

let obj = {'name':'kasan'}
obj.name = 'kasan'
obj['name'] = 'kasan'
obj['na'+'me']='kasan'

let key = 'name';
obj[key] = 'kasan'

批量赋值

Object.assign(obj,{'age':18,'name':'kasan'})

‘name’ in obj和obj.hasOwnProperty(‘name’) 的区别

'name'  in  obj  //是查询obj是否有'name'的属性

hasOwnProperty('name') //查询该属性是否为共有属性,主要用于区分是否为共有属性用的
//如果是共有属性,就返回false,如果是自身的属性则返回 true  要注意原型链上的属性会无视