js中的原型

1.原型的概念:

不同的参照资料对于原型的概念可能稍微有一点不同,我认为的原型就是每一个构造函数都有一个私有的prototype属性。我觉得这个构造函数的prototype属性就是原型。
	<script type="text/javascript">
		//定义一个构造函数
		function Person(name){
			this.name=name;
		}
		Person.prototype.show=function(){
			console.log("这是Person原型中定义的方法");
		}
		//创建对象
		var p1=new Person("kk");
		console.log(p1.show);//输出function(){}方法
		p1.show();//输出function方法执行后的结果
	</script>

上面的代码片段很明确的说明了什么是函数原型,以及函数原型应该怎样使用。

2.原型的作用


从上面的代码片段中我们可以看出:Person的实例对象调用了原型中的方法。所以我们可以得出结论原型提供了一个公用的空间,使得该原型所对应的构造函数的所有实例都可以复用原型中的内容。

3.原型中需要了解的一些细节:

	<script type="text/javascript">
		function Person(name){
			this.name=name;
		}
		Person.prototype.show=function(){
			console.log("这是Person原型中定义的方法");
		}
		console.log(typeof Person.prototype);//输出为object
		var p1=new Person("ss");
		console.log(p1.__proto__===Person.prototype);//输出true
	</script>

注意观察上面的代码片段,我们可以得出
1.原型是object类型的
2.每一个实例对象都会有一个__proto__属性,并且该属性和原型完全相同(===)
3.对于构造函数本身来说,prototype是一个属性,对于实例对象来说prototype被叫做原型对象。

4.原型总结:

如果对上面的所有内容都理解透彻了,那么也就可以继续了解继承、原型链的内容啦。关于构造函数和工厂模式的介绍上个博客已经介绍过了,链接:http://blog.youkuaiyun.com/yaojxing/article/details/71437118。接下来会在下篇介绍继承、函数属性查找、原型链等内容
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值