JavaScript 中原型继承(prototype-based inheritance)的原理是怎样的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 中原型继承(prototype-based inheritance)的原理是怎样的?相关的知识,希望对你有一定的参考价值。
最好能稍微详细的描述一下。
构造函数=function();原型对象=属性甲:1,属性乙:2;
构造函数.prototype=原型对象;
新建对象=new 构造函数();
新建对象.属性甲=0;
这样新建对象就继承了原型对象,并在自身内覆盖了一层私有属性,但并不改变原型对象的任何属性。
此时新建对象本身相当于属性甲:0(算上隐藏的不可枚举属性是属性甲:0,constructor:构造函数),但是如果访问新建对象.属性乙这个自身不存在的属性,则会上溯到其原型对象的同名属性。
原型对象的属性改变会对所有包括之前创建的新建对象统一有效。方便管理且节省空间。
原型对象亦可层层继承(原型对象本身也可以是基于更上层原型的对象构造的)。而没有继承任何对象的最顶层对象(也即是=这种最常见的定义形式,等同于=new Object())的constructor就是Object这个原生超级根对象构造器。 参考技术A monkey patch 和 duck type 前天刚看见的,不明觉厉~
以上是关于JavaScript 中原型继承(prototype-based inheritance)的原理是怎样的?的主要内容,如果未能解决你的问题,请参考以下文章