在javascript中,对象是一组无序的相关属性和方法的集合,所有事物都是对象,例如字符串,数组,数值,函数
对象是由属性和方法组成
对象复杂属性类型object
属性:事物的特征,在对象中用属性来表示
方法:事物的行为,在对象中用方法来表示
创建对象的三种方法
1.利用对象字面量创建对象{}
var obj = {
name:'帅哥', //逗号隔开
hi:function() { //方法的话就是方法名:匿名函数
console.log('hi');
}
}
使用对象:
调用对象的属性 采取 对象名.属性名或者对象名['属性名']
调用对象的方法 采取 对象名.方法名()
console.log(obj.name);
console.log(obj['name']);
obj.hi();
课堂案例:
var obj = {
name:'kk',
lx:'阿拉斯加',
age:'5岁',
color:'red',
jn:function() {
console.log('汪汪');
console.log('演电影');
}
}
console.log(obj.name);
obj.jn();
变量,属性,函数,方法的区别
变量是单独声明并赋值 使用的时候直接打印变量名 单独存在
属性是在对象里面的不需要声明 使用的时候必须是对象.属性打印
函数是单独声明的 并且调用的时候直接函数名()即可
方法是在对象里面的 调用的时候对象.方法名()
2.利用 new Object创建对象;
小细节:
(1).利用赋值 = 添加属性和方法
(2).每个属性和方法用分号;来结束
调用
和字面量是一样的
var obj = new Object(); //创建了一个空的对象
obj.name = 'kk'; //添加属性
obj.hi = function() { //添加方法
console.log('hi');
}
console.log(obj.name);
console.log(obj.['name']);
obj.hi();
课堂案例:
var obj = new Object();
obj.name = 'kk';
obj.hi = function() {
console.log('唱歌');
}
console.log(obj.name);
obj.hi();
3.利用 构造函数来创建对象;
为什么要需要构造函数:
因为我们之前两种一次都只能创建一个对象,如果需要多个对象里面的属性和方法大量重复,所以我们可以利用函数封装一段对象中一些相同的属性和方法 所以我们把这个函数称之为构造函数.
function 构造函数名(name){
this(当前).属性名 = name;
this.方法名 =function (形参) {
console.log(形参);
}
}
调用时候:一定是new 构造函数名();构造函数名首字母要大写
用一个变量来接受
var ldh = new 构造函数名('刘德华');
ldh.sing(实参);
实际例子:
function Star(uname) {
this.name = uname;
this.sing = function(sing) {
console.log(sing)
}
}
var ldh = new Star('刘德华'); 调用构造函数返回的是一个对象~
console.log(ldh.name);
ldh.sing('冰雨');
构造函数不用return就可以返回结果
new关键字执行的过程
1.在内存中创建一个新的空对象
2.让this指向这个新对象
3.执行构造函数里的代码,给这个新对象添加属性和方法
4.返回这个对象(所以不需要return)
遍历对象
for..in
var str = {
name:'li'
}
for(var k in str) {
console.log(k); //变量输出的是属性名
console.log(str[k]); //对象[变量] 得到的是属性值
}
//我们在for in 里面的变量喜欢用 我们喜欢写k或者key