对象是一种复合数据类型,在对象中可以保存多个不同数据类型的属性
对象的分类:
- 内建对象
由ES标准中定义的对象,在任何的ES的实现中都可以使用。如:Math String Number Boolean Function Object… - 宿主对象
由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象。如 BOM DOM - 自定义对象
由开发人员自己创建的对象
内容补充:
1、变量和属性、函数和方法小结
1)变量和属性(都是用来存储数据)
2)函数和方法(都是实现某种功能,做某件事)
- 变量:单独声明并赋值,使用时直接写变量名,单独存在
- 属性:对象里面的变量称为属性,无需声明,用来描述该对象特征, 使用须是:对象.属性
- 函数:单独存在,调用时"函数名()"
- 方法:在对象里面,调用时 “对象.方法()”
栗子:
var num=10;//num是一个变量
var obj={
age:'18'//age是一个属性
//这是一个方法
fun:function(){
}
}
//这是一个函数
function fun(){
}
JS创建对象的三种方式
- 利用对象字面量创建对象
//利用对象字面量创建对象
var obj={
name:'张三',//以键值对的形式存值
age:'age',
sex:'男',
sayHi:function(){
console.log('hi');
}
}
console.log(obj.name);
console.log(obj['sex']);
obj.sayHi();
- 利用new Object创建对象
var obj=new Object();//创建一个空的对象
obj.name='张三';
obj.age='18';
obj.sex='男';
obj.sayHi=function(){
console.log('hi');
}
console.log(obj.name);
console.log(obj['sex']);
obj.sayHi();
3.利用构造函数创建对象
//语法格式:
function 构造函数名(){
this.属性=值;
this.方法=function(){
}
}
new 构造函数();
提醒:
1、构造函数名要大写
2、不需要return,就可以返回结果
3、调用函数时,必须使用new
4、只要new Star 调用函数就创建一个对象xm{}
5、属性和方法前面必须添加this
function Star(name,age,sex){
//相同属性:姓名、年龄、性别
this.name=name;
this.age=age;
this.sex=sex;
//相同的方法
this.sing=function(song){
console.log(song);
}
}
var xm=new Star('小明',18,'男');//调用函数返回的是一个对象
console.log(xm.name);
console.log(xm.sex);
xm.sing('听不到');
var lihua=new Star('李华',19,'男');
console.log(lh.name);
console.log(lh.sex);
lh.sing('');
补充:
1、构造函数和对象
构造函数和对象
1、构造函数泛指某一大类,例如:人
2、对象特指一个具体的事物,例如:小明
3、利用构造函数创建对象的过程也称为对象的实例化
2、new在执行中的操作
1、在内存中创建了一个新的空对象
2、让this指向新的对象
3、执行构造函数里的代码,给这个空对象添加属性和方法
4、返回这个对象(所以构造函数不需要return)
3、遍历对象
//语法格式:
for(变量 in 对象){
//循环遍历对象的属性时,所有属性都将被访问
}
栗子:
var obj={
name:'金金',
age:'18',
sex:'男'
}
for(var k in obj){
console.log(k);//k变量输出得到的是属性名
console.log(obj[k]);//obj[k]得到是属性值
}