JS对象基础

什么是对象
一组数据(属性)和功能(方法)的集合
属性可以是任何的数据类型,例如基本值、对象或函数。
事物的特征在对象中用属性来表示。
事物的行为在对象中用方法(函数)来表示。

创建

  1. 字面量表示
    var obj={};
    属性名直接用逗号隔开,属性名和属性值之间用冒号隔开
  2. 使用构造函数
    var obj=new Object();

属性访问

  1. 点表示法
    例:obj.name
  2. 中括号表示法
    例:obj[“first name”]

遍历
普通版的for只能遍历数组,无法遍历对象
增强版for…in用于遍历数组或者对象的属性

for(自定义变量名 in 数组/对象){
	执行代码
}

for…in可以来枚举对象的属性
对象中有几个属性,循环体就会执行几次,每次执行时,会将对象中的一个属性名赋值给自定义的变量,
对象[自定义变量]来获取属性值

//举例:
var obj={
	name:'zs',
	age:18,
	from:'北京'
};
for(var key in obj){
	console.log('hello');//hello hello hello 循环体执行
	//console.log(key); //name age from
	//console.log(obj[key]); //zs 18 北京
} 

删除
语法:delete 属性访问表达式
例如:delete person.name;
注意:delete只是断开了属性和宿主对象的联系,而不会操作属性中的属性,并且delete只会删除自有属性,不能删除继承属性。在销毁对象时,为了防止内存泄露,遍历对象中的属性,依次删除所有属性。
举例:

var person={
    name:'zs',
    age:20,
    products:{name:'笔记本',price:5000},
    test:function(){console.log('a');}
};
for(var key in person){
    if(typeof person[key]=='object'){//判断属性是否为对象类型
        for(var index in person[key]){
            delete person[key][index];//遍历删除products里的属性
        }
        console.log(person[key]);//null
    }
    delete person[key];//删除person对象的属性
}
console.log(person);//null

检测属性

  1. in 检测某属性是否是某对象的自有属性或者是继承属性
  2. hasOwnProperty()检测给定的属性是否是对象的自有属性,对于继承属性将返回false
  3. propertyIsEnumerable() 检测给定的属性是否是该对象的自有属性,并且该属性是可枚举的,通常由JS代码创建的属性都是可枚举的,但是可以使用特殊的方法改变可枚举性。
var o = { 
	x:1
};
o.hasOwnProperty("x"); //true,x 为o的自有属性 
o.hasOwnProperty("y"); //false,o 中不存在属性y 
o.hasOwnProperty("toString"); //false,toString为继承属性 
student.propertyIsEnumerable(“toString”); //false,不可枚举

Object属性及方法

constructor: //保存用户创建当前对象的函数
hasOwnProperty(propertyName); //检查给定的属性名是否是对象的自有属性,
toString(); //返回对象的字符串表示
valueOf(); //返回对象的字符串,数值,布尔值的表示。
propertyIsEnumerable(propertyName); //检查给定的属性在当前对象实例中是否存在 isPrototypeOf(object); //检查传入的对象是否是原型
toLocaleString(); //返回对象的字符串表示,该字符串与执行环境的地区对应

值传递和引用(地址)传递

  1. 基本数据类型变量
    可以直接操作保存在变量中的实际的值
    参数传递的时候传递的是实际值
  2. 引用数据类型的变量
    不能直接操作对象的内存空间
    参数传递的时候传递的是引用地址
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值