js面向对象之属性
1、属性的设置和获取,方式有两种: .和[ ] .是取自身属性 [ ]可以是变量
var obj={}; obj.name="sonia"; obj['age']=22; console.log(obj); //{name: "sonia", age: 22}
var obj={}; obj.name="xxx"; var nameA="name"; console.log(obj[nameA]); //xxx var obj={}; obj.name="xxx"; var nameA="name"; console.log(obj['name']); //xxx var obj={}; obj.name="xxx"; var nameA="name"; console.log(obj.name); //xxx
2、属性的删除
delete o.name
3、检测属性是否属于对象有三种方法
1)in方法
var o={}; o.name="ccx"; 'name' in o; //true
2)hasOwnProperty
var o={};
o.name="sss";
o.hasOwnProperty('name');//true
3) != ''underfind';
4、枚举属性,对对象的遍历(for in和each)
枚举在C/C++/c#中,是一个被命名的整型常数的集合, 枚举在日常生活中很常见。
例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
SATURDAY,就是一个枚举。
var o={x:1,y:2,z:3}; for(a in o){ console.log(a); } //x y z
var o={x:1,y:2,z:3}; for(var a in o){ console.log(o[a]); } //1 2 3
如果for in 遍历数组
var arr=[{x:1},{y:2},{z:3}]; for(a in arr){ console.log(a); } //0 1 2
var arr=[{x:1},{y:2},{z:3}]; for(a in arr){ console.log(arr[a]); } // {x:1} {y:2} {z:3}
for循环是同步:上面执行完才执行下面,相当于接力赛
each循环是异步:同时执行,相当于统筹方法,同一时间都可以进行
5、序列化对象
http协议接收的是json
对象转字符串
var o2={x:1,y:2,z:3}; console.log(JSON.stringify(o2));//{"x":1,"y":2,"z":3}这里省略了''
console.log(typeof(JSON.stringify(o2)));//string
字符串转对象 var o2='{"x":1,"y":2,"z":3}'; var o3=JSON.parse(o2); console.log(o3); //{x: 1, y: 2, z: 3}