- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Documenttitle>
- head>
- <body>
-
- body>
- <script>
- //使用工厂方法创建对象
- function crearPerson(name,age,gender){
- //手动创建对象
- var obj = new Object();
- //手动添加属性
- // obj.name = "1";
- // obj.age = "11";
- // obj.gender= 12;
- obj.name = name;
- obj.age = age;
- obj.gender= gender;
- obj.sayName = function(){
- alert(this.name);
- };
- //手动返回对象
- return obj;
- }
- var obj1 = crearPerson(1,2,3);
- var obj2 = crearPerson(4,5,6);
- var obj3 = crearPerson(7,8,9);
- var obj4 = crearPerson(1,4,7);
- console.log(obj1);
- console.log(obj2);
- console.log(obj3);
-
- // 升级后的工厂模式 === 构造函数 -- 模板
- function Person(name,age,sex){
- //自动创建对象
- //手动添加成员
- this.name = name;
- this.age = age;
- this.sex = sex;
- //自动返回对象
- }
- let obj = new Person('小美女',18,'女');
-
-
- //各取优点,取构造函数和原型对象的优点
- //构造函数
- function Dog(name,age){
- //实例属性
- this.name = name;
- this.age = age;
- //实例方法
- this.eat = function(){
- return '吃吃';
- }
- }
- //原型方法
- Dog.prototype.eat = function(){
- return '吃';
- }
-
- let dog = new Dog('小黄',3);
- dog.eat = function(){
- return '吃吃吃';
- }
- let dog1 = new Dog('小黑',2);
- console.log(dog.name);
- console.log(dog.eat());//依次向上查找
- console.log(dog.toString());
- console.log(dog);
- console.log(dog.hehe);//null
- script>
- html>
e1.1
e1.2