对象:有属性和方法,具体特指地某个事物
创建对象的三种方式:
1、调用系统的构造函数创建方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
// 第一种创建对象的方法:调用系统的构造函数创建对象
var obj=new Object();
// 对象有行为--属性和特征--方法
// 添加属性-----对象.名字=值
obj.name="han";
obj.age=19;
obj.sex="男";
// 添加方法-----对象.名字=函数
obj.eat=function(){
console.log("我喜欢吃莲菜");
};
obj.cook=function(){
console.log("我会各种炒蛋");
};
console.log(obj.name); //获取输出
console.log(obj.age);
console.log(obj.sex);
obj.eat(); //调用方法
obj.cook();
</script>
</head>
<body>
</body>
</html>
2、工厂模式创建对象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/**
* 如何获取该变量(对象)是不是属于什么类型的?
* 语法:
* 变量 instanceof 类型的名字----->布尔类型 true:是这种类型,false:不是这种类型
* 在当前的对象的方法中,可以使用this关键字代表当前对象
*/
// 如何一次性创建多个对象,把创建对象的代码封装在一个函数中
// 工厂模式创建对象
function creatObject(name,age){
var obj=new Object(); //创建对象
//添加属性
obj.name=name;
obj.age=age;
//添加方法
obj.sayHi=function (){
console.log("你好,我叫:" +this.name+"我今年:"+this.age);
};
return obj;
}
//创建人的对象
var per1=creatObject("丑丑",20);
per1.sayHi();
//创建一个人的对象
var per2=creatObject("韩韩",20);
per2.sayHi();
</script>
</head>
<body>
</body>
</html>
3、自定义构造函数创建对象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
//自定义构造函数
//函数和构造函数的区别:名字是不是大写,首字母大写则是构造函数
function Person(name,age){
this.name=name;
this.age=age;
this.sayHi=function(){
console.log("我叫:"+this.name,"年龄是:"+this.age);
};
}
//自定义构造函数创建对象,先构造一个函数,再创建对象
var obj=new Person("丑丑",20);
console.log(obj.name);
console.log(obj.age);
obj.sayHi();
var obj1=new Person("韩韩",20);
console.log(obj1.name);
console.log(obj1.age);
obj1.sayHi();
</script>
</head>
<body>
</body>
</html>