JS原型及原型链
什么是原型
原型在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原型及原型链】用于
JS
中使用继承功能时共享父函数中部分属性。参考链接
- 深度解析原型中的各个难点
- -最详尽的 JS 原型与原型链终极详解,没有「可能是」
- 阮一峰-Javascript继承机制的设计思想
- 人人都能懂的构造函数
- 封装
- 构造函数的继承
- 非构造函数的继承
推荐阅读
- JS中的各种宽高度定义及其应用
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- 画解算法(1.|画解算法:1. 两数之和)
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 「#1-颜龙武」区块链的价值是什么()
- leetcode|leetcode 92. 反转链表 II
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 经历了人生,才知道人生的艰难!及精彩!
- 罗塞塔石碑的意义(古埃及文字的起源,圣书体文字是如何被破解的)