码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript原型总结

时间:2019-12-30 14:14:58      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:type   wiki   资料   因此   基本概念   www   有一个   object   继承   

概念准备

面向对象编程

  • 我们熟悉的Java和C#里,面向对象的两个基本概念是类class和实例instance,而ES6以前的Javascript并没有设计class。
  • Javascript里的class是通过原型来实现的,通过将某个对象的__proto__属性指向另外一个对象的prototype来实现类和继承,如classA.__proto__ = classB.prototype,看上去就像B是A的父类,A继承自B类。

原型链、隐式原型、显式原型

  • 通常我们说的隐式原型指的是__proto__,而显式原型指的是prototype。
  • prototype在IE里不提供,因此考虑到兼容性的话可以通过Object.getPrototypeOf(对象)来获得。
  • 原型链通常指的是隐式原型链,JavaScript里任何东西都是对象,任何一个对象内部都有一个内置对象叫__proto__,即隐式原型,它可以包含任何东西让对象继承。
  • 当然__proto__本身也是一个对象,它自己也有自己的__proto__,这样一级一级向上,就构成了一个__proto__链,即原型链。
  • 当然原型链不会无限向上,它有个终点,可以称为原型链的顶端,或者root,它是一个特殊的对象,它的__proto__为null,如下所示:
obj.__proto__.__proto__......__proto__ === null;
  • 所有对象都有__proto__,而只有function对象拥有prototype,因此function对象既有__proto__又有prototype。

所有对象的顶端Object.prototype


所有函数的顶端Function.prototype


参考资料

  1. Javascript原型链以及Object、Function之间的关系
  2. 廖雪峰官方网站:Javascript面向对象编程

Javascript原型总结

标签:type   wiki   资料   因此   基本概念   www   有一个   object   继承   

原文地址:https://www.cnblogs.com/zenronphy/p/12119341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!