什么是对象

对象
 
1、 对象  var ne=new Object  或者var = {}
2、面向对象 : c/c++  java
        a)可以创建自定义对象,很好的支持基础和多态
        b)特征:封装,继承,多态
 
3、基于对象: javascript
        a) 无法创建自定义的类型,
         b)不能很好的支持继承和动态
         c)js基于对象,只能new 出object对象
 
4、属性和方法:状态(名词)和行为(动词)
        a) 属性就是人物信息,行为就是释放技能
 
        b) 对象中的函数叫方法(行为)
                i. 对象名 . 状态=匿名函数(){函数体}
         c)对象中的变量叫属性
                i. 对象名 . 方法=属性值
 
        d)  调用对象的方法和属性
               i  调用自己的属性用this(对象中的this代表是对象本身)
              II  调用属性
                    对象名 . 属性名;
             IIi    调用方法
                        对象名.方法名();
//创建一个空对象 自己写属性和方法
    var hero= new Object();
    //自定义属性--状态
    hero.money=1000;
    hero.leve="爱你";
    //自定义方法---行为
    hero.attack=function(){
        console.log("一招施展")
    }
    //属性和方法:也称 状态(名词)和行为(动词)
    console.log(hero);//打印对象里面的内容
    console.log(hero.money);//打印值 属性不加括号
    console.log(hero.leve);//打印值
    hero.attack();//方法要加括号 不加括号就是找属性
5、生活中的对象:具有唯一性
        a)生活中一类事物和对象的区别
            i  一类事物:保时捷汽车
            ii  对象:具有唯一性,我的保时捷汽车
        b)一个车,一个手机
 
6、游戏中的对象:有特指的事物是对象
        a)单个角色是对象
        d)我的装备就是对象
 
7、程序中对象
    a) var hero-new Object()
        i  hero:  就是一个对象
        ii object:  是一个事物,可以new很多的对象
8、对象缺点
        a)创建单个对象的时候还可以,创建多个对象变得非常繁琐
        d)创建多个对象,for循环不能修改属性的值。函数可以创建都个对象
 //单个自定义对象
    var student=new Object();
    student.name = "张三";
    student.sayHi=function(){
        console.log(this.name+"喜欢你")
    };
    console.log(student.name);
    student.sayHi();

工厂模式

//创建多个对象
//缺点:传单个对象的时候还好,创建多个的时候变得非常繁琐
    //创建多个对象,for循环不能改属性的值,函数可以长久多个对象
    function fu(name){
        var createsudent=new Object();
        createsudent.name=name;
        createsudent.sayHi=function () {
            console.log(this.name+'大家好')
        };
       // createsudent.sayHi();
        return createsudent //外面用到对象就反回对象
    }
    var stu1=fu("张三");//这样的方法必须用返回值
   console.log(stu1);
    stu1.sayHi()
    //fu("张三");//直接执行不用返回值
 
                    
原文地址:https://www.cnblogs.com/wdz1/p/7429330.html