- 工厂方法可以大批量创建对象,该方法创建的对象,使用构造函数都是object
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function creatPerson(name,age,gender){
// 创建一个新的对象
var obj=new Object();
// 向对象里添加属性
obj.name=name;
obj.age=age;
obj.gender=gender;
obj.say=function(){
alert(this.name);
};
// 将新的对象返回
return obj;
}
var obj1=creatPerson('zhuzhu',19,'man');
var obj2=creatPerson('feizhu',29,'man');
var obj3=creatPerson('tony',13,'man');
var obj4=creatPerson('jeny',19,'female');
console.log(obj1);
console.log(obj2);
console.log(obj3);
console.log(obj4);
obj1.say();
</script>
</body>
</html>
-
构造函数
构造函数是一个普通函数,创建方式和普通函数无区别,习惯上首字母大写
调用方式不同,普通函数直接调用,构造函数需要new来调用
执行流程:
1、立刻创建一个新的对象,
2、将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象
3、逐行执行函数中的代码,
4、将新的对象作为返回值返回使用同一个构造函数创建的对象,称为一类对象,也将一个构造函数称为一个类,
通过一个构造函数创建的对象,称为该类的实例使用instanceof 可以检查一个对象是否是一个类的实例
语法:对象 instanceof 构造函数
是则返回true,否则false
所有的对象都是Object的后代
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function Person(name,age,gender){
this.name=name;
this.age=age;
this.gender=gender;
}
var p1=new Person('张三',19,'man');
var p2=new Person('李四',29,'man');
var p3=new Person('王五',14,'female');
console.log(p1)
console.log(p2)
console.log(p3)
</script>
</body>
</html>