在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
属性:事物的特征,在对象中用属性来表示(常用名词表示)
方法:事物的行为,在对象中用方法来表示 (常用动词表示)
一、创建对象的三种方法
1、利用字面量创建对象
对象字面量就是花括号{} 包含对象的属性和方法。
var obj={};
var obj={
username : '张三',
sayHi : function(){执行代码};
};
(1)里面的属性方法使用键值对的形式
(2)多个属性方法中间用逗号,隔开
(3)方法冒号后面跟的是一个匿名函数
使用对象
(1)调用对象的属性采用的是 对象名.属性名
(2)另一种方法是 对象名['属性名']
(3)调用对象的方法采用的是 对象名.方法名()
2、利用new Object 创建对象
var obj = new Object;
var obj = new Object;
obj.username = '张三';
obj.sayHi = function(){执行代码}
(1)利用了等号赋值的方法添加对象的属性和方法
(2)每个属性和方法之间用分号结束
3、利用构造函数创建对象
之前一次只能创建一个对象,里面包含了很多的重复的属性和方法,因此我们利用函数的方法,重复这些相同的代码,这个函数称之为构造函数。这个函数里面封装的不是方法,而是对象。
function 构造函数名(){
this.属性 = 值;
this.方法 = function(){执行代码}
}
new 构造函数名();
function Star(username, age){
this.name = username;
this.age = age;
this.sing = function(sang){ console.log(sang) }
}
var ldh = new Star('刘德华',30) //调用函数返回一个对象
ldh.sing('冰雨')
(1)构造函数名字首字母要大写
(2)构造函数不需要return就可以返回结果
(3)调用构造函数必须使用new
(4)只要使用new 构造函数名()调用构造函数就创建一个对象
(5)构造函数里面的属性和方法前面必须添加this
二、构造函数与对象的区别
1、构造函数与对象的区别相当于“明星”和“刘德华”,一类与一个的区别。
2、构造函数创建对象的过程也称之为对象实例化
三、new关键字执行过程
1、new 构造函数可以在内存中创建一个空的对象
2、this就会指向刚才创建的空对象
3、执行构造函数里面的代码,给空对象添加属性和方法
4、返回这个对象
四、遍历对象
for...in... 可以对数组和对象进行遍历循环
var obj = {
name = '张三',
age = 20
}
for (var k in obj){
console.log(k); //k变量输出得到的是属性名
console.log(obj[k]); //obj[k]得到的是属性值
}
for循环里面的变量我们喜欢写k或者key