构造函数与原型

构造函数与原型
构造函数的形式:
1.定义构造函数
2.使用new关键字创建对象
3.通过构造函数使用this为实例化对象赋值
4.返回实例化对象
1.构造函数

function Student(name,age){
				this.name = name,
				this.age = age
			}
			var stu1 = new Student("冰冻黑熊",19)

上面代码中,创建一个含有两个参数的Student的构造函数,其中this指针指向该实例化对象,即this指向stu1,并将值传入this.name。

console.log(stu)


输出stu1可以看见,age与name已经被赋值,而Prototype则是原型。
2.原型

function Student(){
			}
			Student.prototype = {
				init:function(name,age){
					this.name = name,
					this.age = age
				},
				// 将study方法写入构造函数原型中
				study:function(){
					console.log(this.name)
					console.log(this.age)
				}
			}

在1的基础上,使用prototype将study函数写入Student原型中,通过Student实例化的对象,默认继承study方法。同时将传值封装成Init函数写入原型中

var stu = new Student("冰冻黑熊",18)
			console.log(stu)
			stu.init('冰冻黑熊',18)//通过Init函数进行传值
			stu.study()

在这里插入图片描述
可以看见,study函数被写入原型中。

将study方法写入构造函数与原型中,同样能得到相同的效果,但为什么要还要写在原型中呢?如果写在构造函数中,每创建一个实例化对象,系统就要为其分配一个内存来存储这些函数,在实例化对象很多的情况下,就会浪费内存。写在原型中,则是默认由原型继承而来,多个实例化对象共享一个内存空间。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值