工厂模式、构造函数入门

//工厂模式:把一个函数封装好 等待实例化
//好处:不用重复写代码
function Hanshu(a,b,c){

var f=new Object(); //创建一个对象
f.name=a
f.age=b
f.job=c
f.fangfa=function(){
alert(this.age)
}
return f
}
var a=Hanshu("小明",18,"学生")
var b=Hanshu("小红",28,"技术")
console.log(a.name)
console.log(b.name)

总结:简单的使用工厂模式,使用简单的函数创建对象,为对象添加属性和方法,然后返回对象,最后这个模式被构造函数取代

//构造函数
//构造函数首写字母要大写
function Hanshu(a,b,c){
this.name=a;
this.age=b;
this.job=c;
this.fangfa=function(){
return this.name
}
}
//要创建Hanshu的实例要用 new操作符
var a=new Hanshu("小明","18","学生")
var b=new Hanshu("小红","28","技术")
console.log(a.name) //"小明"
console.log(b.name) //”小红
//总结:
// 好处 1.构造函数与函数最大的区别在于 它可以来创建对象。
// 2.跟工厂函数比它自己不用一直创建对象,而是通过new来创建实例对象,而且没有return。
// 坏处 1.构造函数中的方法总是重复创建(我们可以通过给构造函数内部一个指针,指向函数声明就可以),请看下面的理解


// function Hanshu(a,b,c){
// this.name=a;
// this.age=b;
// this.job=c;
// this.fangfa=quanju
// }
// }
// function quanju(){
// alert(this.name)
// }
//这种方法也不推荐使用 虽然解决了重复创建的问题,但是当方法多的时候都创建在全局环境中就没有意义了,推荐使用原型模式

posted @ 2018-03-20 17:20  子元君  阅读(134)  评论(0编辑  收藏  举报