js对象,原型与原型链,属性特征

js对象的定义

在javaScript 中,对象是一组无序的相关属性和方法的集合,万物皆对象。
对象由属性和方法构成

  • 属性:事物的特征,在对象中用属性来表示(颜色尺寸)
  • 方法 :事物的行为,在对象中用方法表示 (打游戏)

为什么需要对象

保存一个值的时候,可以使用变量,保存多个值时,可以使用数组,那么需要保存一个完整信息时改怎么保存呢,这时就需要用对象来保存

对象结构

创建对象的三种方法:

直接花括号创建
var obj = {}
New关键词创建
var obj = new Object
通过Object.create 直接创建  ,指定原型
var  obj = Object.create ({x:1})

对象属性

对象属性方法权限

属性的特性

  • 值 value
  • 可写性 writable
  • 可枚举性 Enumerable
  • 可配置性 configurable

设置特征

Object.defineProperty() //第一个值时obj 第二个attr,第三个值属性描述

获取对象的描述

Object.getOwnPropertyDescriptor(obj,attr)
Object.getOwnPropertyDescriptor({pro:true},'pro)

对象的读写

使用(.)或([])获取属性的值 obj.y obj.['y']
使用等号对象的属性赋值时,就是写操作
对象可以作为关联数组访问。所以才会有 方括号([])表达符。

var addr = "";
for(i =0 ; i <4 ; i++){
    addr += cusomer['address' + i]
}

原型和原型链

prototype是函数才有的属性
proto是每个对象都有的属性,但是proto不是一个规范属性,只是部分浏览器实现此属性,对应标准属性是[[Prototype]]

特性

在js中所有对象都是可扩展的

方法名 描述 详细
isExtensible 判断是否扩展 关闭后不能给对象新增属性(Object.isExtendible(obj))
perventExtenions 关闭可扩展 Object.preventExtenions(obj)
seal 密封性 Object.seal(obj)
isSealed 判断密封性 Object.isSealed(obj)
freeze 冻结性,除可访问外,其他性都关闭 Object.freeze(obj)
isFrozen 判断冻结 Object.isFrozen(obj)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容