js中的构造函数,原型,原型链,继承

在自身的理解中,这几个概念是分不开的,不能脱离一种去了解另外一种。在网上看到很多资料,但是每个人对于他们的理解可能有些不同,而且发现对某些概念网上的资料有的并没有说清楚,所以本人写了这篇文章,希望能够对读者产生一点作用、

1.首先要介绍js中的构造函数

1.我觉得要理解构造函数,首先应该弄清楚什么是工厂模式,应该在工厂模式的基础上进行介绍,那样更加看的更加清晰一些。
首先我们先建立一个基于工厂模式的函数:
		//基于工厂模式创建函数
		//1.原料 2.加工 3.出厂
		function person(name,age){
			//相当于原料
			var obj=new Object();
			//对原料进行加工
			obj.name=name;
			obj.age=age;
			//产品出厂
			return obj;
		}
		//定义变量来使用
		var p1=person("aa",14);
上面的代码就是一个典型的工厂模式函数,通过1.创建原料 2.对原料进行加工 3.出厂 就可以实现。但是我们使用这种方式的时候会遇到一个很大的问题,就是不断的new对象。也就是说每调用一次该函数,,就会在内存中开辟一个新的空间,这样会造成内存很大的浪费。所以我们需要一种更好的方式来创建对象。

2.这时候我们可以使用this关键字来实现更好的方式,同样是上面的代码,我们进行一下改造:
		//基于工厂模式创建函数
		//1.原料 2.加工 3.出厂
		function person(name,age){
			//相当于原料
			// var obj=new Object();
			this.name=name;
			this.age=age;
			//对原料进行加工
			// obj.name=name;
			// obj.age=age;
			//产品出厂
			// return obj;
		}
		//定义变量来使用
		var p1=new person("aa",14);
		console.log(p1.name);
仔细 观察代码和上一次代码的不同:1.函数内部没有使用new来创建新对象;2.并且函数没有return返回值;3.在使用的时候使用了new person()来创建新对象。 需要注意:在使用this的时候为什么可以不用在函数内部创建新对象,为什么可以不用返回return

3.其实第二部分的函数就可以叫做构造函数啦,只不过有些规则还没有符合构造函数的要求。所以作为构造函数的特点是什么呢?
          1.函数名首字母要大写
2.内容使用this关键字来操作私有属性
3.没有return返回值
4.使用new关键字来创建新对象
综上所述,一个完整的构造函数代码(在添加原型之前):
		function Person(name,age){
			this.name=name;
			this.age=age;
		}
		//定义变量来使用
		var p1=new Person("aa",14);
		console.log(p1.name);

今天就先写在这里吧,时间有点晚了,原型,继承,原型链真要说起来有点多。就在后面再说吧

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值