目录
一、什么是对象
常言道,万物皆对象。在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、函数等。
对象是由属性和方法组成的。
- 属性:事物的特征,在对象中用属性来表示(常用名词)
- 方法:事物的行为,在对象中用方法来表示(常用动词)
保存一个值时,可以使用变量,保存多个值时,可以使用数组。如果要保存一个人的完整信息呢?在JS中的对象表达结构更清晰,更强大。所以我们接下来说一下对象。
二、如何创建对象
在JavaScript中,现阶段我们可以采用三种方式创建对象:
- 利用字面量创建对象(对象字面量:就是花特号{}里面包含了表达这个具体事物的属性和方法。
<script>
var phone = {
brand:'HUAWEI',
price:4900,
call:function(){
console.log('call me~')
},
msg:function(){
console.log('I an msg')
}
}
console.log(phone.brand,phone.price)
</script>
- 里面的属性或者方法我们采取键值对的形式
- 多个属性或者方法中间用逗号隔开的
- 方法冒号后面跟的是一个匿名函数
- 使用对象:(1)调用对象的属性,我们采取【对象名.属性名】(2)调用属性还有一种方法【对句名['属性名']
- 使用方法:对象.方法名(),注意方法名后面一定要加()
- 利用new Object创建对象
<script> var obj = new Object(); obj.name = 'apple'; obj.weight = '5kg'; console.log(obj.name,obj.weight) </script>
我们是利用 等号= 赋值的方法,添加对象的属性和方法,每个属性和方法之间用分号结束
- 利用构造函数创建对象
说到利用构造函数创建对象,我们首先要明白,我们为什么要用构造函数来创建?其实原因就是因为前面两种方式一次只能创建一个对象,在这些对象里面,可能会有大量代码是重复的,我们只能复制,因此,我们可以利用函数的方法来重复利用这些代码。
又因为这个函数不一样,里面封装的不是普通代码,而是对象,所以构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面。
构造函数的语法格式:
function 构造函数名(){
this.属性 = 值;
this.方法 = function(){}
}
new 构造函数名();
<script>
function Phone(brand,price){
this.brand = brand;
this.price = price;
this.call = function(c){
console.log(c)
};
this.msg = function(m){
console.log(m)
}
}
var HW = new Phone('HUAWEI','4900');
console.log(HW.brand);
console.log(HW.price);
HW.call('call me')
HW.msg('msg')
</script>
注意事项:
- 构造函数名字首字母要大写
- 我们构造函数不需要return就可以返回结果
- 我们调用的构造函数必须使用new
- 我们只要new Phone(),调用函数就创建一个对象HW{}
- 我们的属性和方法前面必须添加 this
三、总结
最后,我们再来对变量、属性、函数、方法进行一个总结:
- 变量:单独声明赋值,单独存在
- 属性:对象里面的变量称为属性,不需要声明,用来描述该对象的特征
- 函数:单独存在的,通过“函数名()”的方式就可以调用
- 方法:对象里面的函数称为方法,方法不需要声明,使用“对象.方法名()”的方式就可以调用,方法用来描述该对象的行为和功能。