对象
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("张三");//直接执行不用返回值