本文共 1704 字,大约阅读时间需要 5 分钟。
原文地址:https://github.com/vino24/blog/issues/88
var person = new Object();person.name = "vino24";person.age = 22;person.job = "FE Engineer";person.sayName = function() { alert(this.name);}
创建很多对象时,会产生大量重复代码
抽象出创建具体对象的过程,在JavaScript中以函数来封装特定接口创建对象的细节。
function createPerson(name,age,job) {var o= new Object();o.name = name;o.age = age;o.job = job;o.sayName = function() { alert(this.name);};return o;}var person1=createPerson("vino24",22,"FE");person1.sayName();
没有解决对象识别的问题
function Person(name,age,job) { this.name = name; this.age = age; this.job = job; this.sayName=function() { alert(this.name); };} var person1 = new Person("vino24",22,"FE");person1.sayName();
构造函数中的方法都要在每个实例上创建一遍
function Person() {}Person.prototype = {constructor:Person,name:"vino24",age:22;job:"FE",sayName:function() { alert(this.name); }};var person1=new Person();Person.sayName();
所有的实例都会共享其属性和方法
构造函数用于定义实例属性,而原型模式用于定义方法和共享属性
function Person(name,age,job) { this.name = name; this.age = age; this.job = job; this.friends = ["vino","kobe"];}Person.prototype = { constructor : Person, sayName : function() { alert(this.name); }}var Person1 = new Person("vino24",22,"FE");
function Person(name,age,job) { this.name = name; this.age = age; this.job = job; if(typeof this.sayName != "function") { Person.prototype.sayName = function() { alert(this.name); }; }}
转载于:https://www.cnblogs.com/zoumiaomiao/p/4934055.html
1. 最初
缺陷:
2. 工厂模式
缺陷:
3. 构造函数模式
· 构造函数模式与工厂模式区别:
使用new操作符创建对象的过程:
· 缺陷:
4.原型模式
缺陷:
5.组合使用构造函数模式和原型模式
6.动态原型模式