js大概是一年前学的东西了,当时跟着视频走感觉自己懂了,现在再回想发现还是模模糊糊的。于是查阅了一些教程,总算是将它给搞懂了。

从对象说起

我们知道,javascript中的一切都是对象,而我们需要一种方式将这些对象关联起来。在Java、C++等语言中,使用的是基于类来实现这一目的。但由于JS设计之初只是当做浏览器的脚本语言来设计,所以并没有引入类的概念。为了解决这一需求,设计者使用了原型这一概念来实现对象的创建、继承等一系列需求。

构造函数

在Java、C++中,是使用new关键字来调用类的构造函数创建一个实例对象。js也延续了这一做法,不过通过new命令调用的,直接就是构造函数(constructor)

JS

//定义Student的构造函数
function Student(name,gender){
this.name = name;
this.gender = gender;
this.say = function(message){
console.log(message);
}
}
//通过构造函数来创建实例对象——构造函数中的this就是最后返回的实例对象
let kika = new Student(“KIKA”,“male”);
let kika2 = new kika.constructor();
console.log(kika2 instanceof Student); //true
console.log(kika2.constructor === Student); //true => new关键字后跟的就是构造函数
console.log(kika.name); //KIKA
kika.say(“hello”); //hello

原型对象

此时,从构造函数中创建出来的实例对象都会带有一套创建时赋予的属性和方法,但是没有所有实例都共用的属性与方法(如所有的student都会有一个方法study()),在java中此操作可以使用类的静态属性/方法来实现。在js中,设计者为构造函数添加了prototype这一属性,于此同时,在prototype属性中也可以引用constructor属性来指向构造函数(循环了

关于JavaScript继承与原型链的一些理解相关推荐

  1. 浅谈JavaScript继承与原型链

    对于使用过基于类的语言(如java或C++)的开发人员来说,JavaScript有点令人困惑,因为它是动态的,并且本身不提供一个class实现. 在(es5/es6)中引入class关键字,但那只是语 ...

  2. 对Javascript 类、原型链、继承的理解

    一.序言   和其他面向对象的语言(如Java)不同,Javascript语言对类的实现和继承的实现没有标准的定义,而是将这些交给了程序员,让程序员更加灵活地(当然刚开始也更加头疼)去定义类,实现继承 ...

  3. JavaScript之继承(原型链)

    JavaScript之继承(原型链) 我们知道继承是oo语言中不可缺少的一部分,对于JavaScript也是如此.一般的继承有两种方式:其一,接口继承,只继承方法的签名:其二,实现继承,继承实际的方法 ...

  4. 一篇JavaScript技术栈带你了解继承和原型链

    作者 | Jeskson 来源 | 达达前端小酒馆 1 在学习JavaScript中,我们知道它是一种灵活的语言,具有面向对象,函数式风格的编程模式,面向对象具有两点要记住,三大特性,六大原则. 那么 ...

  5. JS中对象的四种继承方式:class继承、原型链继承、构造函数继承、组合继承(构造函数和原型链继承的结合)

    前言 才发现之前没有对JavaScript中的继承做过总结,不过看得到是不少,接下来就对这几种继承方式做一下总结. class继承 class继承是ES6引入的标准的继承方式. ES6引入了class ...

  6. ES5常用的组合继承及原型链理解

    ES5常用的组合继承及原型链理解 <!DOCTYPE html> <html lang="en"><head><meta charset= ...

  7. 【JS继承】JS继承之原型链继承

    自我介绍:大家好,我是吉帅振的网络日志:微信公众号:吉帅振的网络日志:前端开发工程师,工作4年,去过上海.北京,经历创业公司,进过大厂,现在郑州敲代码. JS继承专栏 1[JS继承]什么是JS继承? ...

  8. 《js中原型和原型链的深入理解》的笔记

    前言:在微信公众号前端大全上看过<js中原型和原型链的深入理解>,个人认为这是我看过的js原型链的文章中,在思维结构上理解最清楚的一个文章了,本着温故而知新,有害怕找不到这个文章,我就把文 ...

  9. 原型与原型链的学习理解

    目录 1.对象和函数的原型 1.1认识对象的原型 1.2函数的原型 1.3 将方法放到原型上 1.4总结: 1.5思考: 2.显式原型的属性 2.1默认属性 2.2重写原型对象 3.面向对象的特性-- ...

  10. JS原型链的一些理解

    关于原型链我的理解是一个构造函数的原型作为另一个构造函数的实例形成的继承关系 在JS高级程序设计中有这样一个图 当我们定义一个函数时会有一个原型,即图中的SuperType Prototype,这时原 ...

最新文章

  1. vscode pylint报错的问题
  2. 【Matlab 图像】同时显示两个视频
  3. iTerm2 的配置与美化
  4. get request uni 参数_uni-app 环境配置,uni.request封装,接口配置,全局配置,接口调用的封装...
  5. 虚拟成像技术_AI帝国将崛起,国内幻真虚拟成像技术第一家
  6. win7连接sftp_SFTP远程连接服务器上传下载文件-vs2013项目实例
  7. Delta3d组件以及消息机制
  8. Elasticsearch 内置分析器Analyzer
  9. cocos2d-JS (四)如何学习
  10. 主板电源开关接口图解_主板跳线接法示意图,超详细适合DIY新手
  11. CronTrigger表达式
  12. Y2K Accounting Bug POJ - 2586
  13. 小总结:git的使用
  14. ArcEngine实现动态加载地图
  15. Disastrous Downtime
  16. 信息系统集成-范围管理错题
  17. 【STM32】 中断详解
  18. 偏微分方程的matlab解法微盘,偏微分方程的MATLAB数值解法.pdf
  19. 中科蓝汛-------DUT模式详解
  20. static dynamic 情形下的 (R, T)策略及 Matlab 代码

热门文章

  1. 使用Kotlin语言两年后,我有话要说
  2. Django搭建个人博客之编写博客文章的Model模型
  3. 不同范数下的余弦定理_平行四边形的认识视频
  4. 什么是关键字驱动框架?
  5. 洛克菲勒写给儿子的38封信
  6. 用画图取色和在Word中使用任意颜色
  7. Zookeeper轻松上手
  8. 客户要管理,就靠crm吗?
  9. 推荐!32个好用的百度网盘搜索引擎
  10. python 文件名变量_如何将变量文件名传递给python ete?