创建对象的3种方法:
1、调用系统的构造函数来构造对象(实例化对象)
var 变量名= new Object();
给对象添加属性 对象.名字=值;
给对象添加方法 对象.名字=函数
1 var myobj=new Object(); 2 myobj.name="二狗"; 3 myobj.age=18; 4 5 myobj.eat=function(){ 6 console.log("我喜欢吃") 7 } 8 //输出属性 9 console.log(myobj.name); 10 //调用方法: 11 myobj.eat();
第一种创建方式拓展(工厂模式创建对象,利用函数把对象封装起来,可以一次创建多个对象)
1 function people(name,age){ 2 var obj=new Object(); 3 obj.name=name; 4 obj.age=age; 5 obj.sayHi=function(){ 6 console.log("my name is:"+this.name) 7 } 8 return obj; 9 } 10 var xiaoming= people("xiaoming",21); 11 xiaoming.sayHi(); 12 var xiaohong= people("xiaohong",11); 13 xiaohong.sayHi();
2、自定义构造函数创建对象。函数和构造函数的区别:可理解为看函数名的首字母是不是大写
1 //自定义构造函数 2 function Person(name,age){ 3 4 this.name=name; 5 this.age=age; 6 } 7 //创建对象 8 var obj=new Person("小芳",10);//执行的时候做了四个事情:1、开辟空间,存储新的对象。2、把this设置为当前对象。3、对象赋值属性和方法。4、返回创建后的新对象 9 console.log(obj.name); 10 console.log(obj.age);
3、字面量的方式创建对象 缺点:一次性的对象
1 var obj={ 2 name:"xiaoming", 3 age:10, 4 sayHi:function(){ 5 console.log("你好"); 6 } 7 }; 8 console.log(obj.name);//等价于console.log(obj["name"]); 9 obj.sayHi();//等价于obj["sayHi"](); 10
==========================注意事项============================
对象是通过点来创建属性或者方法
1 var Per={ 2 height:12, 3 name:"huahua" 4 }; 5 console.log(Per.age);//undefined。通过.创建了age属性,但是没有赋值,所以是undefined