javascript内置属性

定义只要内部才用的特性,形貌了属性的种种特性,示意特性是内部的值,放在[[ ]]中
数据属性和接见器属性

数据属性

[[Configurable]]:可否经由过程delete删除属性从而从新定义属性,可否修正属性的特性,或许可否把属性修正为接见器属性(默以为true)
[[Enumerable]]:可否经由过程for-in轮回返回属性(默许值是true)
[[Writable]]:可否修正属性的值(默许值是true)
[[Value]]:包括这个属性的数据值。读和写(默许值是undefined)

Object.defineProperty(obj,proName,修饰符对象)修正数据属性

修饰符对象的属性:configurable,enumerable,writable和value

在挪用Object.defineProperty(obj,proName,修饰符对象),不过不指定修饰符的值,默许是false

接见器属性

[[Configurable]]:可否经由过程delete删除属性从而从新定义属性,可否修正属性的特性,或许可否把属性修正为接见器属性(默以为true)
[[Enumerable]]:可否经由过程for-in轮回返回属性(默许值是true)
[[Get]]:在读取属性时刻挪用该函数,(默许值是undefined)
[[Set]]:在写入属性时刻挪用该函数,(默许值是undefined)

《javascript内置属性》

《javascript内置属性》

var o = {a:1,b:2};
o.c = 3;
Object.defineProperty(o,"d",{
   value:4,enumerable:false
});
//for in 不可以取得enumerable为false的属性
//Object.keys(o)不可以取得enumerable为false的属性
//JSON.stringify(o)不可以取得enumerable为false的属性
//Object.getOwnPropertyNames(o) 可以取得enumerable为false的属性
//ES6中:Reflect.getOwnPropertyNames(o)  可以取得enumerable为false的属性

总结:

《javascript内置属性》

    原文作者:时间冒泡
    原文地址: https://segmentfault.com/a/1190000008840182
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞