文档章节

JS中的原型及原型链的一点总结

wenxingjun
 wenxingjun
发布于 2017/09/05 00:42
字数 432
阅读 22
收藏 0

  1.JS中万物皆对象,但是分为两大类,函数对象,普通对象

     2.所有的函数对象都有一个prototype属性,这个属性引用了一个对象,即原型对象,也称原型。然而普通对象是没有prototype属性,只有_proto_属性

     3.原型对象就是普通对象,(Function.prototype除外,因为它是函数对象,但比较特殊,因为没有prototype属性)

     4.类实例对象的内部_proto_指向它构造函数的prototype

     5.obj.constructor === A.prototype.constructor,就是说类的实例对象的constructor属性永远指向构造函数的prototype.constructor,即使A.prototype不再指向原来A的原型

     6.obj.constructor.prototype === A.prototype。当A.prototype改变,则不成立

     7.类继承:(JS中没有类,这里只是指构造函数)。虽然继承了A构造函数对象的所有属性方法,但不能继承A原型对象的成员,而要实现这个目的,就是在此基础上再添加原型继承

     8.原型对象主要用于继承,JS在创建对象的时候,(不论是普通对象 还是函数对象),都有一个叫做_proto_的内置属性,用于指向创建它的函数对象的原型对象prototype

     9.原型对象prototype中都有个预定义的constructor属性,用于引用它的函数对象。比如说:person.prototype.constructor === person。

    10.Object.constructor === Function。如何查找一个对象的constructor,就是在该对象的原型链上寻找碰到的第一个constructor属性所指向的对象

    11.原型和原型链是JS实现继承的一种模型

    12.原型链的形成是靠_proto_,而不是prototype

© 著作权归作者所有

共有 人打赏支持
wenxingjun
粉丝 0
博文 32
码字总数 6890
作品 0
温州
用通俗易懂的语言介绍JavaScript原型

原型(prototype)是每个JavaScript开发人员必须理解的基本概念,本文的目标是通俗而又详细地解释JavaScript的原型。如果你读完这篇博文以后还是不理解JavaScript的原型,请将你的问题写在下...

gsbhzh
2014/10/29
0
0
从babel实现es6类的继承来深入理解js的原型及继承

先聊个5毛钱的背景吧 自从有了babel这一个利器之后,es6现在已经被广泛的使用。JavaScript 类实质上是 JavaScript 现有的基于原型的继承的语法糖。类语法不会为JavaScript引入新的面向对象的...

春天的风剑客
09/11
0
0
JavaScript中的属性操作

JavaScript中的属性操作 一、 原型链 在js中,任何一个对象都有一个prototype属性,在js中记做:proto。 比如,我们创建一个对象: 虽然看起来我们只为foo对象创建了两个属性,实际上,它还有...

达摩码者
2015/04/06
0
0
最详尽的 JS 原型与原型链终极详解,没有「可能是」

一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的。分为普通对象和函数对象,Object 、Function 是 JS 自带的函数对象。下面举例说明 在上面的例子中 o1 o2 o3 为普通...

临江仙卜算子
07/09
0
0
JavaScript 中的继承:ES3、ES5 和 ES6

选择一种继承方式 JavaScript 是一门动态语言,动态意味着高灵活性,而这尤其可以体现在继承上面。JavaScript 中的继承有很多种实现方式,可以分成下面四类: Mixin 模式,即属性混入,从一个...

天方夜
07/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

白话SpringCloud | 第五章:服务容错保护(Hystrix)

前言 前一章节,我们知道了如何利用RestTemplate+Ribbon和Feign的方式进行服务的调用。在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如网...

oKong
18分钟前
0
0
【解惑】领略Java内部类的“内部”

内部类有两种情况: (1) 在类中定义一个类(私有内部类,静态内部类) (2) 在方法中定义一个类(局部内部类,匿名内部类) 1、私有内部类 —— 在方法之间定义的内部类,非静态 我们首先看看类中...

偶尔诗文
今天
1
0
sqlserver 2008 r2 直接下载地址(百度云)

之前下载的sqlserver2008发现不能附加,就卸载了,重新找到了sqlserver2008R2的百度云资源 卸载sqlserver2008还是有点麻烦,不过就是需要删除注册表中的信息 自己来回卸载了3次终于重装sqlse...

dillonxiao
今天
1
0
[Java]JVM调优总结 -Xms -Xmx -Xmn -Xss

JVM调优总结 -Xms -Xmx -Xmn -Xss 博客分类: Java General JVM应用服务器电信CMS算法 堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可...

morpheusWB
今天
2
0
C++ std::function 和 std::bind

C++11提供了std::function和std::bind两个工具,用于引用可调用对象。这些可调用对象包括 普通函数,Lambda表达式,类的静态成员函数,非静态成员函数以及仿函数等。引用可调用对象,可以用于...

yepanl
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部