在JS中,对象时一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。
对象是由属性和方法组成的。
目录
1、属性
事务的特征,在对象中用属性来表示(常用名词)
2、方法
事务的行为,在对象中用方法来表示(常用动词)
3、创建对象的三种方式
3.1、利用字面量创建对象
语法:
var 对象名 = {}
例如:
var obj = {
uname: '张三丰',
age: 100,
sex: '男',
sayHi: function() {
console.log('hi~');
}
}
注:
对象里面的属性或者方法,采用键值对的形式
多个属性或方法之间时用逗号隔开
方法冒号后面跟的是一个匿名函数
3.1.1、如何使用对象
使用对象中的属性:
1、对象名.属性名
2、对象名['属性名']
注意:用第二种方法调用的时候不要忘记写引号
使用对象中的方法:
对象名.方法名()
注意:使用对象的方法时,不要忘记写括号()
3.2、利用new Obiect创建对象
语法
var 对象名 = new Object();
3.2.1、向对象中添加属性和方法
对象名.属性名 = 值;
对象名.方法名 = function(){
}
使用对象的方法跟使用字面量创建对象一样
3.3、利用构造函数创建对象
为什么要用构造函数来创建对象?
因为我们一次创建一个对象,如果里面很多的属性和方法是大量相同的,我们要创建多个对象时只能复制
因此,我们可以利用函数的方法,重复这些相同的代码
而且这个函数不同于正常的函数,里面封装的不是普通的代码,而是对象。所以称这个函数为构造函数构造函数就是把我们对象里面一些相同的属性和方法抽象出来封装到函数里面
语法:
function 构造函数名(值){
this.属性 = 值;
this.方法 = function(参数){
console.log(参数);
}
}
var 对象名 = new 构造函数名(值1, 值2,。。。);
对象名.方法(参数)
例如:
function Star(uname, age, sex) {
this.name = uname;
this.age = age;
this.sex = sex;
this.sing = function(sang) {
console.log(sang);
}
}
3.3.1、调用构造函数生产对象
var ldh = new Star('刘德华', 19, '男');
ldh.sing('冰雨');
3.3.2、使用对象内属性
console.log(ldh.name);
console.log(ldh['sex']);
3.3.3、注意事项
1、构造函数名的首字母需要大写
2、我们构造函数不需要return,就可以返回结果
3、物品们调用构造函数时,必须使用 new
4、我们只要new Star() 调用函数就创建了一个对象
5、我们的属性和方法前面必须添加 this
3.3.4、构造函数和对象
1、构造函数泛指某一大类
例如:明星
2、对象特指一个具体的事务
例如:赵丽颖
3、我们利用构造函数创建对象的过程,我们也称为对象的实例化
3.3.5、new关键字
new的执行过程:
1、在内存中创建一个新的空对象
2、让this指向这个新的对象
3、执行构造函数里面的代码,给这个新对象添加属性和方法
4、返回这个对象(所以构造函数里面不需要return)
4、遍历对象
方法:
for (var k in 对象) {
console.log(k); // k是变量,输出得到的是属性名
console.log(对象[k]);// k是变量不需要加 ' '。此时得到的是属性值
}
注:for in 循环里面的变量,习惯性的写 k 或者 key。尽量不要写其他的。养成良好的代码规范。
5、对象小结
1、对象可以让代码结构更加清晰
2、对象复杂数据类型object
3、本质:对象就是一组无序的相关属性和方法的集合
4、构造函数泛指某一大类,这一大类中的内容有高度重复的内容,但是具体个体有不尽相同
5、对象实例特质一个