美文网首页
JS原型及原型链

JS原型及原型链

作者: 嘴角45度 | 来源:发表于2019-06-04 21:53 被阅读0次

什么是原型

原型在JS中的名称是 prototype ,它是挂载在构造函数上的一个用于继承时可以共享的一个对象,在我们声明一个函数时,这个对象会自动创建。它是一个显示的属性,并且只有函数才有,但有一个例外:

let fun = Function.prototype.bind()

什么是原型链

原型链在JS中的名称是 __proto__,它是每个对象都有的一个隐式原型属性,指向创建该对象的构造函数的原型。由于 prototype 也是一个对象,所以prototype也有一个__proto__指向生成它的构造函数的原型,这样一层一层地原型指向,形成了原型链。

function Person(name, age) {
    this.name = name;
    this.age = age;
}
var person1 = new Person();

person1.__proto__ === Person.prototype;

Person.prototype.__proto__ === Object.prototype;

person1.hasOwnProperty("name");

可以看到,person1 通过一层一层的原型链关联,最后它拥有 Object 原型函数下面所带有的方法。

它们有什么作用

用于 JS 中使用继承功能时共享父函数中部分属性。

参考链接

  1. 深度解析原型中的各个难点
  2. 简书-最详尽的 JS 原型与原型链终极详解,没有「可能是」
  3. 阮一峰-Javascript继承机制的设计思想
  4. 人人都能懂的构造函数
  5. 封装
  6. 构造函数的继承
  7. 非构造函数的继承

相关文章

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • 前端资料

    ES6新数据类型 Symbol . js变量提升函数提升 js this js 原型及原型链理解 new做了什么 ...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • JS 原型及原型链

    JS的原型及原型链的讲解,网上很多。这里自己也记录一下。 JS的重要核心概念:万物皆对象。 对象主要是两个: Ob...

  • js原型及原型链

    参考文章:https://www.jianshu.com/p/be7c95714586 这篇文章说的很清晰自己在实...

  • JS原型及原型链

    什么是原型 原型在JS中的名称是 prototype ,它是挂载在构造函数上的一个用于继承时可以共享的一个对象,在...

  • Js面向对象

    一、Js面向对象 二、Js原型及原型链 1、原型 JavaScript 的每个对象都继承另一个父级对象,父级对象称...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • JS博客

    JS构造函数及new运算符 JS原型对象和原型链 函数作用域和作用域链 干货分享:让你分分钟学会JS闭包 深入理解...

网友评论

      本文标题:JS原型及原型链

      本文链接:https://www.haomeiwen.com/subject/cjcdxctx.html