犀牛——第6章对象 6.5 枚举属性
2015-07-24 16:17
330 查看
6.5 枚举属性
for/in循环可以在循环体中遍历对象中所有可枚举的属性(包括自由属性和继承属性),把属性名称赋值给循环变量。对象继承的内置方法不可枚举的,但在代码中给对象添加的属性都是可枚举的。
var o = {x:1,y:2,z:3}; //三个可枚举的自有属性
o.propertyIsEnumerale("toString"); //=>false,不可枚举
for(p in o) //遍历属性
console.log(p); //输出x、y和z,不会输出toString
过滤for/in循环返回的属性:
for(p in o){
if(!o.hasOwnProperty(p)) continue; //跳过继承的属性
}
for(p in o){
if(typeof o[p] === "function") continue; //
}
两个用以枚举属性名称的函数。
1、Object.keys(),它返回一个数组,这个数组由对象中可枚举的自有属性的名称组成。
2、Object.getOwnPropertyNames(),返回对象的所有自有属性的名称,而不仅仅是可枚举的属性。
6.6 属性getter和setter
对象属性是有名字、值和一组特性构成的。属性值可以用一个或两个方法替代,这两个方法就是getter和setter。由getter和setter定义的属性称做“存取器属性”。
定义存取器属性最简单的方法是使用对象直接量语法的一种扩展写法:
var o = {
//普通的数据属性
data_prop:value,
//存取器属性都是成对定义的函数
get accessor_prop(){ /*函数体*/},
set accessor_prop(value) {/*这里是函数体*/}
};
例子:
var p = {
//x和y是普通的可读写的数据属性
x:1.0,
y:1.0,
//
get r(){ return },
};
for/in循环可以在循环体中遍历对象中所有可枚举的属性(包括自由属性和继承属性),把属性名称赋值给循环变量。对象继承的内置方法不可枚举的,但在代码中给对象添加的属性都是可枚举的。
var o = {x:1,y:2,z:3}; //三个可枚举的自有属性
o.propertyIsEnumerale("toString"); //=>false,不可枚举
for(p in o) //遍历属性
console.log(p); //输出x、y和z,不会输出toString
过滤for/in循环返回的属性:
for(p in o){
if(!o.hasOwnProperty(p)) continue; //跳过继承的属性
}
for(p in o){
if(typeof o[p] === "function") continue; //
}
两个用以枚举属性名称的函数。
1、Object.keys(),它返回一个数组,这个数组由对象中可枚举的自有属性的名称组成。
2、Object.getOwnPropertyNames(),返回对象的所有自有属性的名称,而不仅仅是可枚举的属性。
6.6 属性getter和setter
对象属性是有名字、值和一组特性构成的。属性值可以用一个或两个方法替代,这两个方法就是getter和setter。由getter和setter定义的属性称做“存取器属性”。
定义存取器属性最简单的方法是使用对象直接量语法的一种扩展写法:
var o = {
//普通的数据属性
data_prop:value,
//存取器属性都是成对定义的函数
get accessor_prop(){ /*函数体*/},
set accessor_prop(value) {/*这里是函数体*/}
};
例子:
var p = {
//x和y是普通的可读写的数据属性
x:1.0,
y:1.0,
//
get r(){ return },
};
相关文章推荐
- 程序员,为什么千万不要重写代码?
- 索引在联合查询中的作用
- 如何快速从android开发转向ios开发--oc语法篇
- Android ViewPager
- 获取项目文件目录下的所有文件路径
- Mongodb安装 for windows7 64位
- Design Pattern——Adapter
- 第六章――根据执行计划优化性能(2)――查找表/索引扫描
- HTML里面的文本标签
- hihocoder1178 计数
- 深入理解Java的接口和抽象类
- OC-NO.2属性
- 以Tomcat为例介绍Servlet容器启动过程
- [树状数组&线段树]HDU3874 Necklace 离线思想
- 7-24
- 生成模型和判别模型的理解
- sap保存时小写字母自动转大写字母的解决方法
- 第六章――根据执行计划优化性能(3)――键值查找
- 充值流量平台接口,常见流量平台列表
- 隐藏的iframe