《JS 对象基本用法》

136 阅读2分钟

今天我来向大家介绍一下JS的对象基本用法,大概有以下五项内容

  1. 声明对象的两种语法
  2. 如何删除对象的属性
  3. 如何查看对象的属性
  4. 如何修改或增加对象的属性
  5. 'name' in objobj.hasOwnProperty('name') 的区别。

内容1:声明对象的两种语法

let obj={'name':'frank','age':18}
或
let obj = new Object ({'name' : 'frank'})

内容2:如何删除对象的属性

当我们要删除对象的某个属性时我们可以用到undefined或者delete各有区别例:

var obj={name:'frank',age='18'} //当我们要删除name属性时可以用到"undefined"
obj.name=undefined;//但是这种仅是剥夺了“frank”而name的属性为undefined;
delete obj.name;//用delete可直接删除属性名和值。

内容3. 如何查看对象的属性

一、查看对象属性分为两种情况:

1.查看自有属性:
object.keys(obj)读取括号内容的属性名;
object.valves(obj)读取括号内容的属性值;
object entries(obj)读取括号内容的名和值;
或直接(对象)可得名和值;

2.查看共有属性:
console.div(obj)===自身属性+共有属性;
或者用Object.keys打印出obj._ _proto_ _(不推荐有可能不是共有属性proto里的);

3.判断一个自身属性还是共有属性:
判断一个属性是自身还是共有obj.hasOwnProperty(某属性)

内容4. 如何修改或增加对象的属性

一.修改或增加属性

1.直接赋值
直接通过obj.name='frank'为字符串赋值也可用[name]进行赋值,但['name']里的字符串一定要加''因很有可能name值不确定;
2.批量赋值
通过objecr.assign(obj{age:18,gender:'man'})来进行批量赋值;

二.修改或增加隐藏属性

1.无法通过自身修改或添加属性用toString仅仅是改在自身上
2.若执意要改我还是推荐使用window.Object.prototype.tostring=某共有属性更改共有属性
3.补充小知识“也可在共有原型里添加属性”=原型链,object.create

内容5:'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj无法判断是属性是自有属性还是共有属性
obj.hasOwnProperty('name')会返回true或false(hasOwnProperty=拥有自己的属性)

小测试
**let list = ['name', 'age', 'gender']   //
let person = { 
        name:'frank', age:18, gender:'man'} 
for(let i = 0; i < list.length; i++){
    let name = list[i] 
    console.log(person__???__)
}
使得person 的属性被打印出来如何选择呢?
1. console.log(person.name)
2. console.log(person[name]
答
这里的name需要是一个变量
所以console.log(person[name])