记录--JS原型链
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助
成都创新互联主要从事网站设计、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务古雷港,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18980820575
引子
对于初学者学习原型链,还是有很大的困难。一方面是函数与对象分不太清楚;另一方面,不懂原型链的继承等。本人曾今也深受困惑,并且把疑惑的地方都记录下来,为大家做出解释。明明CSDN搜索关于原型链的文章一大堆,为啥我还要写?个人觉得,写下这篇原型链文章,不仅表达我对原型链理解的程度,也算是总结自己了自己的学习心得;更多的,此篇文章,或多或少会为大家理解原型链,又多出了一些新的感悟。同时,在讲解原型链之前,要补充关于函数和对象的一些知识,加强大家的理解。总体围绕原型链展开,其它内容为辅。希望大家能够静下心来,认真阅读,最终能够有所收获!
对象与函数的区别
- 对象包含函数,函数是特别的对象,也就是说对象的范围更大,而函数的范围更加小。举个简单例子,985,211等知名大学是一定是本科,而本科不一定是985,211,本科可能是普通一本,甚至是普通二本,三本等。
- 对象特别拥有*** --proto–(因为使用Markdown语法写文章,下划线的_会转译成别的作用,所以用-代替,接下里的文章内容都将如此) *** 和 constructor 两个属性,而函数特别拥有 prototape 这个属性。这个属性因为函数属于特殊的对象,因此函数也可以有 –proto– 和 constructor 两个属性。也就是说,对象有的,我都有,对象没有的,我还有。换句话说,你的就是我的,我的还是我的。
- Object函数和Function函数是已经内置好了的,除此之外,还有Array,Date等等。Object这个函数,也是由 Function 构造的。并且,所有函数都是 Function的实例。换句话说,我们声明的普通函数 *function name(){} *, 更加像是由new Function实例生成的,如
var ff = new Function("a", "b", "console.log(a,b); return a+b;"); 就相当于function ff(a,b){ console.log(a+b); return a+b; } 值得注意的是,Function最后一个""中,是函数的主体,在它之前的都是参数。 并且,由Function实例生成的,都是函数。这是与其它普通函数实例出来的 最大不同,普通函数new生成的,是一个对象,而不是函数。
分享文章:记录--JS原型链
分享URL:http://azwzsj.com/article/dsojpod.html