什么是对象
定义:一组无序的相关属性和方法的集合,如数组,字符串,函数等
组成: 对象由属性和方法组成(可以先理解为变量和函数,后面会讲到对象属性和方法与变量和函数的区别)
js中对象该如何写
方法一 :字面量创建对象
var dog = {
dogName: '可可',
type: '阿拉斯加犬',
age: '5岁',
color: '棕红色',
skill: function(){
console.log('汪汪汪');
}
}
console.log(dog.dogName);
console.log(dog['type']);
dog.skill();
方法二:利用 new Object创建对象
var obj = new Object();//创建了一个空对象
方法三:利用构造函数创建对象
构造函数:把对象里面相同的属性和方法封装到函数里面
构造函数创建的对象可以称之为实例或者对象的实例化
(构造函数泛指的是一大类,类似java中的class)
构造函数注意点:
- 构造函数可以复用,能创建多个对象,字面量和new只能创建一个对象
- 构造函数的函数名首字母要大写
- 构造函数不需要返回return就可以返回结果,调用构造函数返回的是一个对象,但是构造函数中的方法需要返回值(下面讲到的)
- 属性和方法前面必须要加this.
- 调用构造函数必须使用new
new关键字是如何实现创建对象的:
- new会先在内存中创建一个空的对象,
- 构造函数中的this都会指向这个空对象
- 执行构造函数中的代码,给空对象添加属性和方法
- 返回对象
function Movies(yourName,age,sex){
this.name = yourName;
this.age = age;
this.sex = sex;
this.skill = function(skills){
console.log(skills);
}
}
var cy = new Movies('杨杨',13,'男');
console.log(cy.age);
console.log(cy['sex']);
cy.skill('hulalala');
遍历对象
var dog = {
dogName: '可可',
type: '阿拉斯加犬',
age: '5岁',
color: '棕红色',
skill: function(){
console.log('汪汪汪');
}
}
//for (变量 in 对象) 变量一般使用k或者key
for (var key in dog){
console.log(key);//key变量输出得到的是属性名和方法名
console.log(dog[key]);
}
变量和对象的属性
相同点:
都是用来保存数据的。
区别:
变量: 单独声明并赋值,使用的时候直接写变量名,单独存在。
对象的属性: 在对象里面不需要声明,使用的时候必须是对象.属性。
函数和对象的方法
相同点:都是实现某种功能做某件事情。
区别:
函数: 单独声明,并且调用是单独存在的。
对象的方法: 调用的时候,对象.方法( )。