目录
1.1 对象的简介
1.1.1对象的类型
对象属于复合数据类型,在对象中可以保存多个不同数据类型的属性
1.内建对象
-由ES标准中定义的对象,在任何的ES的实现中都可以使用
-比如:Math String Number Boolean Function Object......
2.宿主对象
-由JS的运行环境提供的对象,目前来讲主要指浏览器提供的对象
-比如 BOM DOM
3.自定义对象
-由开发人员自己创建的对象
1.1.2 对象的组成
对象是由属性和方法组成的
- 属性:事物的特征,在对象中用属性来表示(常用动词
-方法:事物的行为,在对象中用方法来表示(常用名词
1.2 对象的基本操作
1.创建对象
var obj = new Object(); //使用new关键字调用的函数,是构造函数constructor
构造函数是专门用来创建对象的函数,使用typrof检查一个对象时,会返回object,
在对象中保存的值称为属性,
(1.向对象中添加属性
语法:对象.属性名 = 属性值
obj.name ="张三"; //向对象中添加name属性
obj.age ="23"; //向对象中添加age属性
obj.sex ="男";
console.log(obj); //在浏览器中显示
(2.读取对象中的属性
语法:对象.属性名;
console.log(obj.name); //读取对象的姓名
注:如果读取对象中没有的属性,不会报错,而是返回underfined
2.修改对象
语法:对象.属性名 = 新值;
obj.name= ''tom''; //修改对象的属性值
console.log(obj.name);
3.删除对象
语法:delete 对象.属性名;
delete obj.name;
2.1 属性名和属性值
属性名:
- 对象的属性名不强制要求遵守标识符的规范
若使用特殊的属性名,不能采用 . 的方式来操作,需要使用如下方式,(读取时也需采用)
语法:对象["属性名"] = 属性值;
- 使用[ ]这种形式可以更加灵活的去操作属性,在[ ]中可以直接传递一个变量,根据变量值的多少读取相应属性
属性值:
-js对象的属性值,可以是任意数据类型,甚至可以是一个对象
var obj = new Object(); //创建一个对象
var obj2 = new Object();
obj2.name ="猪八戒"; //给obj2设置属性
obj.test = obj2; //将obj2设置为obj的属性,即对象的属性可以是对象
console.log(obj.test.name);//输出 猪八戒
in运算符
- 通过该运算符可以检查对象中是否含有指定的属性
如果有,返回 true,没有则返回 false。
- 语法: “属性名” in 对象
console.log("test2" in obj); //检查obj中是否含有test2属性
<script>
// js中语法顺序执行
var obj = new Object();
obj.name='张三';obj.age='24';obj.sex='男';
console.log(obj);
console.log(obj.name);
obj.name='tom'; console.log(obj.name);
delete obj.name; console.log('name' in obj); //检查是否还含有指定属性name
console.log('age' in obj);
</script>
2.2 方法
对象的属性值可以是任何数据类型,也可以是个函数
var obj=new Object();
obj.sayname =function(){
console.log(obj.name);
};
console.log(obj.sayName);
//也可以使用如下方式输出
obj.sayName(); //调方法
function fun(){
console.log(obj.name);
}
fun(); //调函数
函数也可以称为对象的属性,
如果一个函数作为一个对象的属性保存,那么我们称这个函数是这个对象的方法,调用函数即是调用对象的方法。