第一种:new一个Object的实例。
通过object构造器new一个对象,再丰富成员信息。
<script>//创建对象var obj1=new Object();//设置对象属性的第一种方法obj1.name="刘鸿伟";obj1.age=20;//设置对象属性的第二种方法obj1["123"]=123;obj1["1242536"]="孙悟空";var n="1242536";//取console.log(obj1.name);console.log(obj1["123"]);//[]里面可以传递一个变量,这样的话就比较灵活console.log(obj1[n]);</script>
<script>/** 对象的属性值可以是任意类型,甚至是对象,例如:*/var obj1=new Object();//创建第一个对象var obj2=new Object();//创建第二个对象obj2.name="曾志勇";obj2.age=19;//设置对象属性:将obj1的属性值person设置为对象obj2obj1.person=obj2;console.log(obj1.person);//打印一下obj这个对象的属性person(是一个对象)。console.log((obj1.person).name);//打印一下obj对象的属性person(对象)的属性值。console.log((obj1.person).age);//打印一下obj对象的属性person(对象)的属性值。</script>
<script>/** 对象的属性值可以是任意类型,甚至是函数,* 如果一个函数作为一个对象的属性保存,那么我们称这函数是这对象的方法* 调用函数就说是调用对象的方法*/var obj=new Object();//创建一个对象obj.name="猪八戒";//给对象的属性设置为函数obj.sayHello=function(){console.log("HelloWorld");};//调用一下对象的这个属性,即调用对象的方法obj.sayHello();</script>
第二种:使用对象字面量模式。
将成员信息写到{}中,并且赋值给一个变量。此时的这个变量就是一个对象
<script>/** 使用对象字面量可以在创建对象时,直接指定对象的属性* 对象的属性名,可以加引号,也可以不加,建议不加,如果需要使用一些特殊的名字作为属性值, 则必须加引号*/var obj={name:"猪八戒",age:18,sex:"男","anchor(42&*A87324)":"傻逼"//这是特殊的名字,属性名必须加引号};console.log(obj);//打印对象console.log(obj.name);//打印属性</script>
<script>/** 在使用对象字面量创建对象的过程中,同样也可以将属性值指定为一个对象*/var obj={name:"孙悟空",age:1000,//这里将test的属性值指定为一个对象test:{name:"沙和尚",age:28}};//调用test属性值里面的对象的属性console.log((obj.test).name);console.log((obj.test).age);</script>
<script>/** 在使用对象字面量创建对象的过程中,同样也可以将属性值设置为一个函数*/var obj={name:"猪八戒",age:24,//这里将sayHello的属性值指定为一个函数sayHello:function(){console.log("Hello")}};//调用sayHello的属性——函数obj.sayHello();</script>
第三种:使用工厂模式。
<script>/** 使用工厂方法创建对象*/function creatPerson(name,age,sex){//先创建一个对象var obj=new Object();//赋值obj.name=name;obj.age=age;obj.sex=sex;obj.sayName=function(){console.log(this.name);};//返回一个对象return obj;}//使用工厂方法,获取三个对象var obj1=creatPerson("孙悟空",19,"男");var obj2=creatPerson("猪八戒",20,"男");var obj3=creatPerson("白骨精",20,"女");//打印一下三个对象console.log(obj1);console.log(obj2);console.log(obj3);//调用一下对象里面的方法obj1.sayName();obj2.sayName();obj3.sayName();</script>
第四种:使用构造函数模式。
<script>/** 利用构造函数来创建对象* 语法格式:* function 构造函数名(){* this.属性=值;* this.方法=function() {};* }** new 构造函数名();*//** 1,构造函数首字母一般大写* 2,构造函数不需要return就可以返回结果* 3,我们调用构造函数必须使用new*///创建一个构造函数function Star(name,age,sex){this.name=name;this.age=age;this.sex=sex;this.say=function(sang){console.log(sang);}}//使用构造函数创建对象var obj=new Star("刘德华",18,"男");//打印对象的属性,调用方法console.log(obj);console.log(obj.name);console.log(obj.age);console.log(obj.sex);obj.say("冰雨");//使用构造函数创建另外一个对象var obj2=new Star("张学友",19,"男");//打印对象的属性,调用方法console.log(obj2);obj2.say("李香兰");</script>
