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。接下来会在下篇介绍继承、函数属性查找、原型链等内容
1078

被折叠的 条评论
为什么被折叠?



