2020-10-19 JavaScript的学习(三)

对象Object

ECMA-262对象的定义:无序属性的集合,其属性可以包含基本值,对象,或者函数。可以将对象想象成散列表:键值对,其中值可以是数据或者函数。ECMAScript中的对象其实就是一组数据(属性)和功能(方法)的集合。


1.创建Object实例

使用构造函数创建,new Object()

var person = new Object(); 
person.name = "briup"; 
person.age = 22;

使用对象字面量表示法
不同的属性之间用 ‘ , ’ 分割,属性名和属性值之间用 ‘ : ’ 分割

var person = { 
		name : "briup", 
		age : 22 
};

2.访问对象属性

  • 点表示法:右侧必须是以属性名称命名的简单标识符person.name
  • 中括号表示法:中括号中必须是一个计算结果为字符串的表达式,可以通过变量访问属性,如果属性名中 含语法错误的字符,或者属性名使用的是关键字或保留字,可以使用中括号 person["first name"]

3.删除属性

delete只是断开了属性和宿主对象的联系,而不会操作属性中的属性,并且delete只会删除自有属 性,不能删除继承属性。在销毁对象时,为了防止内存泄露,遍历对象中的属性,依次删除所有属 性。
语法:delete 属性访问表达式
例如: delete stu.name //删除学生对象中的name属性

4.检测属性

  • in 检测某属性是否是某对象的自有属性或者是继承属性
  • Object.prototype.hasOwnProperty()检测给定的属性是否是对象的自有属性,对于继承属性将返回false
  • Object.prototype.propertyIsEnumerable() 检测给定的属性是否是该对象的自有属性,并且该属性是可枚举的。通常由JS代码创建的属性都是可枚举的,但是可以使用特殊的方法改变可枚举性。
    例如:
var o = { x:1 }
o.hasOwnProperty("x"); //true,x 为o的自有属性 
o.hasOwnProperty("y"); //false,o 中不存在属性y 
o.hasOwnProperty("toString"); //false,toString为继承属性 
o.propertyIsEnumerable(“toString”); //false,不可枚举

5.Object构造函数原型对象中的部分属性及方法

Object原型中的所具有的任何属性和方法也同样存在于其他对象中,任何对象继承 自Object。
Object原型中常用的方法:

方法含义
constructor保存用户创建当前对象的函数,与原型对象对应的构造函数
hasOwnProperty(propertyName)检查给定的属性名是否是对象的自有属性
propertyIsEnumerable(propertyName)检查给定的属性在当前对象实例中是否存在
valueOf()返回对象的字符串,数值,布尔值的表示
toLocaleString()返回对象的字符串表示,该字符串与执行环境的地区对应
toString()返回对象的字符串表示
isPrototypeOf(object)检查传入的对象的原型①Object.prototype.isPrototypeOf(obj)    true ②a.isPrototypeOf(b) 如果a是b的原型,则返回true。如果b不是对象,或者a不是b的 原型,则返回false。

6.对象序列化

对象序列化是指将对象的状态转换为字符串,也可以反序列化,将字符串还原为对象函数,RegExp,Error对象,undefined值不能序列化和反序列化。

  • JSON.stringify(obj) 将对象序列化为Json字符串,只能序列化对象可枚举的自有属性
  • JSON.parse(jsonStr) 反序列化
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值