目标:解决以下问题
- 在JS中,创建对象以及使用对象的方式
1.利用字面量来创建对象
//1.利用对象字面量来创建对象:一般采用键值对的方式 var obj = { uname: '新垣结衣', age: 32, sex: '女', sayHello: function() { console.log('星野源啊'); } } //使用对象的方式一 console.log(obj.uname); //使用对象的方式二 console.log(obj['uname']);
2.利用new Object来创建对象
//2.利用new Object的方式创建对象 var aop = new Object(); aop.uname = '李逍遥', aop.age = 18; aop.user = '天下第一大侠', aop.sayHi = function() { console.log('灵儿,我是逍遥啊'); }
3.利用构造函数来创建对象(对象的实例化)
- 因为我们一次创建一个对象,里面很多属性和方法是大量相同的,我们只能复制
- 我们可以利用函数的方法,重复这些相同的代码,我们把这个函数称为构造函数
- 这个函数里面封装的不是普通代码,而是对象
- 构造函数 就是把我们对象里面的属性和方法抽象出来封装到函数里面
//构造函数创建对象 function Star(uname, age, sex) { this.uname = uname; this.age = age; this.sex = sex; this.sang = function(sing) { console.log(sing); } } var ldh = new Star('刘德华', 48, '男'); console.log(ldh.sex); console.log(ldh.uname); ldh.sang('17岁') var zxy = new Star('张学友', 44, '男', ); console.log(zxy.uname, zxy.sex); zxy.sang('李香兰');
- 说出new的执行过程
1.new构造函数可以在内存中创建一个空的对象
2.this会指向刚才创建的空对象
3.执行构造函数的代码,给这个空对象添加属性和方法
4.返回这个对象
- 遍历对象
利用for in来遍历对象
function Star(uname, age, sex) { this.uname = uname; this.age = age; this.sex = sex; this.sang = function(sing) { console.log(sing); }, this.dance = function() {} } var ldh = new Star('刘德华', 48, '男'); console.log(ldh.sex); console.log(ldh.uname); ldh.sang('17岁') //利用for in来遍历对象 for (var key in ldh) { console.log(ldh[key]);//遍历的是属性值,console.log(key);遍历的是属性名 } //输出结果: 男 刘德华 17岁 刘德华 48 男 ƒ (sing) { console.log(sing);} ƒ () {}