在学习JavaScript的一些总结和经验,供大家参考和学习,同时也欢迎大家参与讨论。
使用for-in循环
在使用 for-in 循环时,返回的是所有能够通过对象访问的、可枚举的(enumerated)属性,其中既包括存在于实例中的属性,也包括存在于原型中的属性。屏蔽了原型中不可枚举属性(即将[[Enumerable]] 标记为 false 的属性)的实例属性也会在 for-in 循环中返回。
IE 早期版本的实现中存在一个 bug,即屏蔽不可枚举属性的实例属性不会出现在 for-in 循环中。
例子:
1 | function Person(name,age){ |
ECMAScript 5 也将 constructor 和 prototype 属性的 [[Enumerable]] 特性设置为 false
原生的 constructor 属性是不可枚举的。但我们可以通过Object.defineProperty()来使constructor可枚举。
Object.defineProperty(obj, prop, descriptor)
obj要在其上定义属性的对象。
prop要定义或修改的属性的名称。
descriptor将被定义或修改的属性描述符。
1 | function Person(name,age){ |
Object.key()
返回值: 返回一个包含所有给定对象自身可枚举的实例属性名称的数组。
1 | function Person(name,age){ |
Object.getOwnPropertyNames()
返回值: 可枚举和不可枚举的实例属性的名称被返回
1 | var obj ={ |
Object.create()
Object.freeze()
Object.is()
等等等等
文章标题: Object构造函数上的方法
文章作者: 王奕聪,QQ:1301842163
许可协议:
©署名-非商用-相同方式共享 4.0
