本文章为本人在学习中自己总结的学习笔记,望大家喜欢采纳!
创建普通对象与工厂模式创建对象以及构造函数知识!!
1.使用js创建普通对象:
//创建一个学生对象: 名称 年龄 方法 吃饭; //通过js创建普通对象方式: var s1 = { name:“张三”, age:18, eat:function(){ console.log("正在吃:") } } var s2 = { name:“李四”, age:21, eat:function(){ console.log("正在吃:") } } var s3 = { name:“王五”, age:16, eat:function(){ console.log(this.name +"正在吃:") } }
普通对象创建方式:
优点:简单,方便;
缺点:无法量产;
由于工作开发项目中多个创建对象,我们使用普通创建对象是比较不方便,我们可以使用“工厂模式”创建;
2.使用工厂模式创建对象:
//使用函数(工厂模式)创建对象 function createStudent(name,age,){ var s = new Object(); s.name = name; s.age = age; eat:function(){ console.log(this.name+"正在吃"); } return s; }
工厂模式创建对象方式:
优点:可以量产对象;
缺点:通过工厂模式创建出来的对象,无法明确对应类型;
3.构造函数创建:
借鉴了其他语言创建对象方法,创建类
类:同一类型事物的总称,包含的属性和方法 都写到构造函数里面
由于js没有类这个概念,我们利用构造函数模式来模拟类,利用js this指向的问题
//创建一个学生类 function Student(name,age){ this.name = name; this.age = age; this.eat = function(){ console.log(this.name+"正在吃!") } } var s1=new Student("王一",21) var s2=new Student("张三",21) var s3=new Student("李四",23) //s1 prototype 原型 一样的 //s2 prototype 原型 一样的 //s3 prototype 原型 一样的 console.log(s1.prototype==s2.prototype) console.log(s2.prototype==s3.prototype) console.log(s3)
这里的 new 做的是创建一个空对象{},执行后面的构造函数,将函数内容this,指向空对象,函数执行完成后,将创建的空对象返回给前方变量;