对象部分

152 阅读3分钟

在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