js创建对象

Posted by xiongmao; tagged with js对象 , 创建对象 , 对象的使用 , 构造函数 , 遍历对象

导读:

JS中对象

一.认识对象

在 JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串,数值,数组,函数等。
 对象是由属性和方法组成的
  属性:事物的特征,在对象中用属性来表示(常用名词)
  方法:事物的行为,在对象中用方法来表示(常用动词)

二.创建对象

1.字面量创建对象
1.1 利用对象字面量创建对象{}
 var obj = {};  //创建:创建了一个空的对象
①.对象字面量:就是花括号{}里面包含了表达这个事物(对象)的属性和方法
     {}里面采取键值对的形式表示
            键:相当于属性名
            值:相当于属性值,可以是任意类型的值(数字类型,字符串类型,布尔类型,函数类型)
②.多个属性或者方法中间用的逗号隔开的
③.方法冒号后面跟的是一个匿名函数    
        
        var obj = {
            uname: '张三疯',
            age: 18,
            sex: '男',
            sayHi: function () {
                console.log('hi~');
            }
        }
①.对象的使用
①.调用对象的属性  我们采用 对象名.属性名    
        console.log(obj.uname);
调用属性另一种方法  对象名['属性名']
        console.log(obj['age']);
调用对象的方法   对象名.方法名()
        obj.sayHi();
2利用new Object创建对象
      利用 new Object 创建对象
        var obj = new Object(); //创建一个空对象
      我们是利用 等号 = 赋值的方法 添加对象的属性和方法
        obj.uname = '张三疯';
        obj.sex = '男';
        obj.age = 18;
        obj.sayHi = function(){
            console.log('hi~');
        }
        console.log(obj.age);
        console.log(obj['uname']);
        obj.sayHi();
3.利用构造函数创建对象

利用构造函数创建对象
构造函数的语法格式:
 function 构造函数名(){
  this.属性 = 值;
  this.方法 = function(){}
 }
 new 构造函数();

      function Star(uname,age,sex){
            this.name = uname;
            this.age = age;
            this.sex = sex;
            this.sing = function(sang){
                console.log(sang);
            }
        }
       var zs =  new Star('张三',18,'男');//返回类型为对象object
       console.log(zs.name);
       zs.sing('冰雨');
       console.log(typeof zs);
       var ls = new Star('李四',28,'女');
       console.log(ls.sex);
       
        1. 构造函数名字首字母要大写
        2.构造函数不需要return也能返回值
        3.我们只要new Star() 调用函数就创建一个对象 
        4.构造函数必须使用 new
        5.我们的属性和方法前面必须添加 this


         构造函数和对象区别
        
        构造函数:如Stars(),抽象了对象的公共部分,封装到了函数里面,它泛指某一大类(class)
        创建函数,如 new Stars(),特指某一个1,通过new 关键字创建对象的过程我们也称为对象示例化
        

         new关键字执行
        
        1.在内存中创建一个新的空对象
        2.让this指向这个新的对象
        3.执行构造函数里面的代码,给这个新对象添加属性和方法
        4.返回这个新对象(所以构造函数里面不需要return)
for in 遍历对象
        /*
        for in 遍历对象
            语法:
                for(变量 in 对象){

                }
        */
       var obj = {
           name: '张三',
           sex: '男',
           age: 18,

       };
       for(var k in obj){
           console.log(k);  // k变量  输出得到的是属性名
           console.log(obj[k]);//obj[k] 得到的是  属性值
       }

       小结
       1.对象可以让代码结构清晰
       2.对象复杂数据类型object
       3.本质:对象就是一组无序的相关属性和方法的集合
       4.构造函数泛指某一大类,比如苹果,不管是红色苹果还是绿色苹果,都统称为苹果
       5.对啊啊想实例特指一个事物,比如这个苹果
       6.for..in语句用于对 对象的属性进行循环操作