JS-[工厂模式&构造函数&prototype]

Posted yangjiale

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-[工厂模式&构造函数&prototype]相关的知识,希望对你有一定的参考价值。

 

 

工厂模式

通过一个函数(工厂函数)来创建对象

function createPerson(name,age)
	var obj=
		name:name,
		age:age,
		setName:function(name)
			this.name=name;
		
	;
	return obj;	//return一个object

createPerson("sam",20);

自定义构造函数

function Person(name,age)	//构造函数首字母要大写
	this.name=name;
	this.age=age;
	this.setName=function(name)
		this.name=name;
	;

var person1=new Person("sam",20);

工厂模式和构造函数的区别

  • 工厂模式返回的都是一个object对象,没有具体类型
  • 构造函数返回的时一个具体的类型对象

protorype的使用

声明未声明属性

Person.prototype.phone=null;	//接上面代码,在Person没有phone的情况下用peototype声明
var person2=new Person("jack",21);
person2.phone="25698546";
alert(person2.phone);	//正常输出

动态声明方法

function Person(name,age)	
	this.name=name;
	this.age=age;
	this.say=function()
		alert("miao~");
	;

var p1=new Person("sam",20);
p1.say();

在上面的情况下say只能miao~,可以用prototype

function Person(name,age)
	this.name=name;
	this.age=age;
	//先不写say方法


Person.prototype.say=null;	//声明say方法

var p1=new Person("sam",20);
p1.say=function()	//设置p1的say方法
 alert("miao~");
;
p1.say();

var p2=new Person("gou",2);
p2.say=function()	//设置p2的say方法
 alert("wang~");
;
p2.say();

以上是关于JS-[工厂模式&构造函数&prototype]的主要内容,如果未能解决你的问题,请参考以下文章

js设计模式--工厂模式

js面向对象小结(工厂模式,构造函数,原型方法,继承)

JS面向对象基础讲解(工厂模式构造函数模式原型模式混合模式动态原型模式)

js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)

JS中的工厂模式与构造函数模式

js创建对象的几种方式(工厂模式构造函数模式原型模式)