Object属性和prototype属性一览表

js对象Object的属性简介

object对象属性有:

1.length:打印出来为1 ,不知道有什么用
2.name:保存对象的名字
3.prototype:对象保存公用方法,子对象可继承
4.assign:浅拷贝(对于不可枚举的属性不拷贝)
5.getOwnPropertyNames:获得该对象的所有的key值 (包括不可枚举的属性),已数组形式返回新值
6.getOwnPropertyDescriptor:传入两个参数,参数一目标对象和需要查询的属性字符串,获得对象上指定属性的描述符的对象(是否可枚举,是否可配置,是否可写入,value值)
7.getOwnpropertyDescriptors:获得对象上所有属性的描述符对象,对象形式返回(每个属性中放入描述符是否可配置等描述符,描述符同上)
8.getOwnPropertySymbols:这个是啥子鬼,查阅资料后更新
9.is:判断两个值是否相等,感觉就和 === 一样,但是NaN在is中是可以相等的 。 ===NaN不相等
10.preventExtensions:防止对象或者构造函数扩展,对象可以删除属性,可以修改属性值。但是不可以添加属性
11.seal:密封一个对象,对象不可删除和添加 ,但是可以修改对象的里面的值 。
12.create:新增一个对象,第一个值为对象的原型,第二个值为对象的值和属性描述符
13.defineProperties:设置对象的属性,可以一次设置多个值 。需要传入每个值需要传入描述符,不传默认为false
14.defineProperty:设置对象的属性,一次设置一个,第一个值为对象,第二个值为key 值,第三个值传入对象 ,这三个参数都是必传, 对象包含value和配置,枚举,修改的描述符 。writable与set和get不能写在一起。会报错的。
15.freeze:冻结对象,冻结后的对象不可修改和添加删除,直接修改了属性的修饰符。writeable改为false (是否可修改-主要体现在修改值),configurable改为false (是否可配置-主要体现在是否可删除该属性), enumerable不改变为true(该描述符控制该属性是否可以被一般的for in 遍历 , true可以被找到 , false不可以被找到)
16.getPrototypeOf获得对象的原型地址,就是返回{}.proto ,只对自己创建的对象有效果,对原始Object和函数返回 native code(内部代码)
17.setPrototypeOf 为对象设置指定的对象原型,为Object时默认失败,Object还是原来的对象。函数设置后__proto__这个属性没了 ,删除了这个属性
18.isExtensible 检查一个对象是否可以扩展
19.isFrozen 检查一个对象是否被冻结 , 冻结后的对象不可扩展和删除和修改
20.isSealed 一个对象是否被密封 , 密封后不可删除和添加
21.keys 获得对象可枚举的所有的键值
22.entries 对对象进行切割 ,数字对象切割后为空数组 。字符串切割后就是数组里面装多个子数组,下标为键,字符串为值 ,例: Object.entries(‘abvc’)=>[0:[0,‘a’],1:[1:‘b’],2:[2:‘v’],3:[3:‘c’]] ,对象切割后就是数组里面装多个对象,例如:Object.entries({av:22,bc:33})=>[0:[‘av’,22],2:[‘bc’,33]] ,数组和字符串差不多的 。就不列举了
23.values:返回对象和数组的值
24.proto Object默认的__proto__的属性,Object.getOwnPropertyNames打印不出来。__proto__指向对象Function函数对象

.
.

prototype 属性一览表

1.constructor:用于指向构造函数对象 , Object.prototype.constructor=Object ,Object.proto.constructor=Function ,不知道这是为什么会指向Function(研究中后续补上)。Function.proto.constructor=Function(这是为啥,待研究) 。RegExp.prototype.constructor=RegExp
2.defineSetter:设置属性值的时候的处理函数,与defineProperty中的set一样的功能 ,并且该功能以后的版本可能不支持该方法 ,慎用
3.defineGetter:获得属性值的时候的处理函数 , 与defineProperty的get一样的功能 ,并且该功能以后的版本可能不支持该方法 ,慎用
4.hasOwnProperty:判断该对象之内有没有传入的属性名字,能在对象之内找到该属性则返回true,在对象之内找不到则返回false
5.lookupGetter:获得属性的get方法,有设置的话返回设置的get方法 。未设置的话返回undefined。
6.lookupSetter:获得属性的set方法, 有设置的话返回设置的set方法。 未设置的话返回undefined。
7.isPrototypeOf:搞不懂(研究研究是什么)
8.propertyIsEnumerable:对象调用该方法获得该属性是否是可枚举的 ,可枚举的返回true , 不可枚举的返回false 。
9.toString:返回一个表示该对象的字符串。 搞不懂,各种构造函数都会重写
10.valueOf: 返回指定对象的原始值。 搞不懂,
11.proto:属性值为null
12.toLocaleString:方法返回一个指定的字符串表示,此方法用于派生对象为了特定语言环境的目的(local-specific purposes) 重载而使用的 , 搞不懂

关于js-对象部分属性参考描述

对象中的描述符功能简介

writable:是否可以修改value的值,true为表示可以修改value的值 ,false表示不可以修改
configurable:是否可以配置,true表示可以配置 。false表示不可以配置 。配置我只知道其中一个功能是否可以删除该属性 。true的时候可以删除 。false的时候不可以删除
value:存的是这个属性的值 ,对象点属性的时候给出该值
enumerable:表示是否可以遍历该属性,true的时候表示可以遍历,false的时候表示不可以遍历
set:这是个函数 ,当你为该属性设置值的时候 ,会触发该属性的函数 ,该函数会传入设置的值,并且可以添加你想做的操作。
get:当你想获得该属性的值的时候 ,获得的是该函数的返回值。其中你可以添加你想做的操作,放入该函数。
注意 -set和get不能与writable和value不能共存 ,否则会报错
为属性设置值的时候,writable为true,configurable为true,enumerable为true。value为设置的该值
例:var box={} ; box.aa=1 ; =>{writable:true,enumerable:true,configurable:true,value:1}
例:Object.defineProperty(box,‘bb’,{})=>{writable:false,enumerable:false,configurable:false,value:undefined}
关于描述符的参考资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值