第一种: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设置为对象obj2
obj1.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>