JavaScript 对象及其枚举

首先,我们要知道对象的表现形式是怎么样的:

对象1={
	属性名    属性值
	属性1:值1,
	属性2:值2,
	属性3:值3,
	...
}

属性名与属性值之间是用冒号相连接的,每个属性语句结束,都用逗号分隔。

当我们想要访问属性值的时候,有以下两种形式:
1.obj.属性名
2.obj[“属性名”]
需要注意的是,2中的属性名是字符串形式的。

对象属性值的增删改查:
增:mrDeng.wife = “xiaoliu” 直接写。.属性 = “”
删:delete mrDeng.name 就会把名字删了
改:mrDeng.wife = “xiaoliu” ,换双引号里面的属性
查:console.lgo(mrDeng.属性);

对象的创建方法:
1.var obj = { } planObject 对象字面量/对象直接量
2.构造函数
1)系统自带的构造函数 new Object()
2)自定义
3.大驼峰式运算规则
TheFirstName

1.遍历整个对象属性的方法:

for(var prop in obj) {      //表示在obj里面,有多少个prop就循环多少圈,prop是属性名
    console.log(prop + "" + typeof(prop)) ;
}   
for(var prop in obj) {      //我们想用这个形式来遍历每个属性
    console.log(boj.prop) ;    
}   
//obj.prop ---> obj['prop']     //但是有一个隐式规则是这样的,这样转换以后就变成了字符串'prop',就不是在对象里找属性访问了

所以只能这样写(枚举):

for(var prop in obj) {      //只用这个形式来遍历每个属性
    console.log(obj[prop]) ;    
}   
  
还有一点特殊属性要注意:一但访问到了object.prototype,即原型链的最顶端时,就放弃打印了,只打印自己设置的原型,不打印系统的。
var obj = {
    name : 'Reagan',
    age : 19,
    sex : "female",
    __proto__ : {
        lastName : "deng",         //打印这个
        __proto__ : Object.prototype        //不打印这个
    }
}
for(var prop in obj) { 
    if(obj.hasOwnProperty(prop)) { 
        console.log(boj[prop]) ;
    }
}   
  

2.排除对象属性里原型的方法:

var obj = {
    name : 'Reagan',
    age : 19,
    sex : "female",
    __proto__ : {
        lastName : "deng"
    }
}

for(var prop in obj) { 
    if(obj.hasOwnProperty(prop)) {      //这里的prop是用来判断此时访问到的这个对象属性是否是自己的,如果是自己的,返回true;如果不是自己的(假如是原型的),返回false
        console.log(boj[prop]) ;    //这样就可以遍历出只属于自己的属性
    }
}   
  

3.判断对象上能不能访问到这个属性
在控制台上:

--'lastName' in obj
--> true

4.A instanceof B
A对象 是不是 B构造函数构造出来的
看A对象的原型链上 有没有 B的原型

区别数组和对象的三种方法:
1.constructor
2.instanceof
3.toString

js中想根据动态key得到某对象中相对应的value的方法:
var key = “name1”;var value = obj[key];
这样key就相当于一个中间量,来接收属性值,只要接收到属性值,就把他交给key,后面的操作就只针对key就可以了,这样更加灵活也使操作变得统一,体现了动态性。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值