JS-[工厂模式&构造函数&prototype]
Posted yangjiale
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-[工厂模式&构造函数&prototype]相关的知识,希望对你有一定的参考价值。
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面向对象基础讲解(工厂模式构造函数模式原型模式混合模式动态原型模式)