原型链是一种机制,指的是JavaScript每个对象包括原型对象都有一个内置的[[proto]]属性指向创建它的函数对象的原型对象,即prototype属性。
作用:原型链的存在,主要是为了实现对象的继承。
关于原型链的几个概念:
1、函数对象
在JavaScript中,函数即对象。
2、原型对象
当定义一个函数对象的时候,会包含一个预定义的属性,叫prototype,这就属性称之为原型对象。
//函数对象 function F(){}; console.log(F.prototype)
3、__proto__
JavaScript在创建对象的时候,都会有一个[[proto]]的内置属性,用于指向创建它的函数对象的prototype。原型对象也有[[proto]]属性。因此在不断的指向中,形成了原型链。
举个例子来说,我们将对象F的原型对象修改一下,就可以清楚看到上述的关系
//函数对象 function F(){}; F.prototype = { hello : function(){} }; var f = new F(); console.log(f.__proto__)
4、new
当使用new去调用构造函数时,相当于执行了
var o = {}; o.__proto__ = F.prototype; F.call(o);
因此,在原型链的实现上,new起到了很关键的作用。
5、constructor
原型对象prototype上都有个预定义的constructor属性,用来引用它的函数对象。这是一种循环引用。
function F(){}; F.prototype.constructor === F;
在实际运用中,经常会有下列的写法
function F(){}; F.prototype = { constructor : F, doSomething : function(){} }
这里要加constructor是因为重写了原型对象,constructor属性就消失了,需要自己手动补上。
6、原型链的内存结构
function F(){ this.name = 'zhang'; }; var f1 = new F(); var f2 = new F();
以上就是js原型链是什么的详细内容,更多请关注爱上源码网其它相关文章!
- 上一篇:jquery为什么写入口函数
- 下一篇:前端用nodejs能做什么
相关文章
相关视频
- 深入理解js原型链
- js原型链由什么构成?在继承中处于什么作用
- 对原型链上不能使用对象的理解以及JS原型链的深刻探…
- 带你详细解读JS原型链
- js原型链是什么
- 原型链_属性问题
- 原型链继承
- 原型链和继承
本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn!
本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
爱上源码下载网 » js原型链是什么
常见问题FAQ
- 从网站下载的源码都有安装教程么?不会安装怎么办?
- 本站发布的网站源码和模板资源大部分在压缩包内都有教程,如您不会安装可以联系本站在线技术进行付费安装。
- 爱上源码的所有源码都是亲测能正常运行的么?
- 我手中的优质资源可以在你这换钱或者VIP么?
- 爱上源码除了资源分享还有其他业务没?