对象及其创建方式

一.对象的基本概念

对象:有属性和方法的,特指的一类事物
                在对象中同样可以创建对象
                ---即属性可以是任意的类型,包括object

二.对象的基本创建方式

1.工厂模式
2.自定义构造函数创建
3.字面量方式创建

工厂模式

   工厂模式:批量创建对象;将创建对象的过程封装起来,成为一个创建对象的函数
                    ----但无法识别对象的实例

        function createObj(name,age){
        var obj=new Object;
            obj.name="name";
            obj.age="age";
            return obj;
        }
        var p1=createObj("张三",12);

构造函数方式

 自定义构造函数:特征:首字母大写
                    作用:可以对创建的对象划分类,如Person类,Dag类
            function Preson(name,age){
                this.name=name;
                this.age=age;
                this.action=function(){
                    ...
                }
            }
            var person1=new Preson("小明,"12");
            console.log(Person.name)
            Person1.action();
            console.log(person1 instance of Person);    //true;

字面量创建对象

 自面量创建对象
            var obj={};
            obj.name="次奥白";
            obj.age=12;
            obj.say=function(){
                ...
            };

            //var obj1={
                name:"小黑",
                age:12,
                say:function(){
                    ...
                }
            };

工厂模式和构造函数模式的区别

    工厂模式和构造函数模式
        ---工厂模式:相当于创建一个函数封装起来,需要创建对象时调用此函数
        ---构造函数方式:相当于创建了一个“类”,其中并没有显现的创建对象类,因为其中使用
                        ----this---来直接代替,直接将属性和方法赋值给this
                        ----即解决了重复实例化的问题 ,又解决了对象识别的问题

获取对象的属性:

  获取对象的属性:
                    1.eg:per1.name="小黑"

                    2. json格式创建对象时,只能通过---- per1["name"]---获取属性
                        eg: per1["name"]="小黑"; //对象["属性名"]=...

        json:也是一个对象,数据是成对出现的
                -----并没有length属性
            eg:
                json格式的数据:
                    var json={
                        "name":"小白",
                        " age":"12",
                        "sex":"true"
                    }

js遍历对象

  var json={
                        "name":"小白",
                        " age":"12",
                        "sex":"true"
                    }
   javaScript遍历对象
                    ----for...in循环语句遍历对象的属性
                    ----for(变量名 in 对象名){
                        ...
                        console.log(变量名);
                    }
                    
                    for(var key in json){
                        console.log(key);//name,age,sex;
                          console.log(json[key]);
                    }
                  格式:(变量 in 对象)......注意,,,
                      当“对象”为数组时,“变量”指的是数组的“索引”;
                      当“对象”为对象时,“变量”指的是对象的“属性”。

简单数据类型和复杂数据类型

 简单数据类型:string boolean number
        复杂数据类型:object
        空类型:undefined null

        值类型存储在栈当中(string,number,boolean),值类型传递的是值
        引用类型object存储在堆上,地址在栈中存储,引用传类型递的是地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值