【javascript】对原型对象、原型链的理解
原型对象,原型链这些知识属于基础类知识。但是平时开发过程中也很少用到。
看网上的意思,原型链用于es5开发场景下的继承。es6有了类语法糖之后,就自带继承了。
通过理解,个人画了一张原型链解构的关系图:
可以看出:
从构造函数F开始
new 构造函数F就是实例对象f(var f=new F())
构造函数F.prototype就是F的原型对象(F.prototype==F原型对象)
F原型对象.constructor就是构造函数F(F.prototype.constructor==F)
F原型对象.__proto__是Object的原型对象(F.prototype.__proto__==Object.prototype)
实例对象f.__proto__是F原型对象(f.__proto__==F.prototype)
Object的原型对象就是null(终结)
场景1:
无此私有属性:
原型添加属性后,f.a将会有值。不加的话,如果构造函数中不设置该属性,就是undefined
有此私有属性:
如果设置了私有属性就用不到了
场景2:
构造函数中无方法,原型对象中有方法,便可调用之
转载于:https://www.cnblogs.com/wuhairui/p/10282986.html
【javascript】对原型对象、原型链的理解相关推荐
- ES6 (二十二)Class 的继承、extends关键字、super 关键字(函数调用(constructor)、对象(父类原型对象))、原型对象(原型链)、Mixin 模式
ES6 (二十二)Class 的继承.extends关键字.super 关键字(函数调用(constructor).对象(父类原型对象)).原型对象(原型链).Mixin 模式 文章目录 ES6 (二 ...
- js 执行环境 活动对象 变量对象 作用域链的理解
看一下是知乎大神对于 js 执行环境 活动对象 变量对象 作用域链的解释 假设在全局环境下定义了函数pub()和变量pubvar: var pubvar = 1; function pub () {v ...
- JavaScript进阶-编程思想、构造函数的原型对象、对象原型、原型继承以及原型链
编程思想 面向过程 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次 调用就可以了. 优点: 性能比面向对象高,适合跟硬件联系很紧密 的东西,例如单 ...
- JavaScript apply 和 call 和 bind,原型和原型链的理解
apply 和 call 改变 this 指向 apply 和 call 都可以让函数或方法调用 apply 第二参数是数组 call 参数是多个值 function f1(x,y){return x ...
- (转)【javascript基础】原型与原型链
原文地址:http://www.cnblogs.com/allenxing/p/3527654.html 前言 原型是什么 理解原型对象 原型对象 isPrototypeOf hasOwnProper ...
- JavaScript重难点解析3(原型与原型链、执行上下文与执行上下文栈)
JavaScript重难点解析3(原型与原型链.执行上下文与执行上下文栈) 原型与原型链 原型(prototype) 显示原型与隐式原型 原型链 instanceof是如何判断 执行上下文与执行上下文 ...
- javascript原型和原型链
一.Javascript数据类型 1.基本数据类型:Number String Boolean Null Undefined 基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值 var a ...
- JavaScript(八)——对象原型
通过原型这种机制,JavaScript 中的对象从其他对象继承功能特性:这种继承机制与经典的面向对象编程语言的继承机制不同.本文将探讨这些差别,解释原型链如何工作,并了解如何通过 prototype ...
- JavaScript高级day02-AM【函数的prototype、显式原型与隐式原型、原型链】
笔记.视频.源码:JavaScript(基础.高级)笔记汇总表[尚硅谷JavaScript全套教程完整版] 目 录 P15 15.尚硅谷_JS高级_函数的prototype 15:04 1. 函数 ...
- 【JavaScript高级教程】JavaScript prototype(原型对象)
所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法. function Person(first, last, age, eyecolor) {this.fi ...
最新文章
- 抓取了1400家科技公司的招聘信息,我发现数据工程师比数据科学家更有市场
- python正则表达式代码_python的re正则表达式实例代码
- OpenCV实现图像金字塔
- 【特征工程】(未完成)编码
- C++ 编译,运行过程 详解。
- BZOJ 4421: [Cerc2015] Digit Division 排列组合
- Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述
- AI一周热闻:华为年收入突破千亿美元;英伟达发布城市监控数据集
- 项目搭建系列之一:使用Maven搭建SpringMVC项目
- model.train() model.eval()
- 单例模式中饿汉模式和懒汉模式的线程安全问题
- php 生成合同,万能合同文书自动生成软件系统
- css3 transition transform属性造成文字抖动
- C Halting Problem
- 下拉列表(select标签)
- FreeBSD网站平台建设全过程(一、系统安装)
- 树莓派系统+arduino单片机+双目摄像头 搭载小车
- Luogu 2495 [SDOI2011]消耗战
- C learning_11 (数组和在内存存储的理解、数组越界、数组作为形参)
- 仿360一键清理实现(二)
热门文章
- 射线检测(Summary)
- 基于EPOLL+多进程+线程池的server框架设想_程序世界_百度空间
- 安全应对MySQL攻击
- WPF 4 动态覆盖图标(Dynamic Overlay Icon)
- 鼠标悬停在li标签上时显示一个弹框_HTML标签——列表标签
- opengl 创建context_OpenGL专业名词解析
- java cfg_如何使用antlr生成Java CFG(控制流图)?
- 基于Netty的RPC框架
- 判断Windows操作系统位数的方法
- 抽象类java启动线程_java 线程复习笔记