今天我来向大家介绍一下JS的对象基本用法,大概有以下五项内容
- 声明对象的两种语法
- 如何删除对象的属性
- 如何查看对象的属性
- 如何修改或增加对象的属性
'name' in obj和obj.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])