在某天,我听了一个老师的公开课,一张图搞懂了原型链. 老师花两天时间理解.整理的,他讲了两个小时我们当时就听懂了. 今天我把他整理出来,分享给大家.也让我自己巩固加深一下. 就是这张图: 为了更好的图文对照,我为每条线编了标号,接下来的细节讲解,都会用到这张图里的编号: 为了你更好的对照阅读,你可以单独打开这张图片,然后对比着文章看. 当然,我后边也会贴心的把对应区域截小图贴在文案附近. 前置知识 在对这张图进行详细拆解前,我们先来说几个前置的基础知识.以便后续更好的理解. Function.O…
js高级里面原型链对于新手来说并不友好,总的来说就是 任何函数都有自己的原型对象(prototype),任何实例对象都__proto__指向构造函数的原型 先来个最简单的原型三角关系 var fn = new Fn(); 实例对象不能直接访问构造函数而是通过访问构造函数的原型间接访问构造函数 现在直接深入复杂的原型链图 1.Fn为构造函数 var fn = new Fn() 2.Fn为实例对象 var Fn = new Function() 3.var obj = new Object() 4…
一张图彻底搞懂JavaScript的==运算 来源 https://zhuanlan.zhihu.com/p/21650547 PS:最后,把图改了一下,仅供娱乐 : ) 大家知道,==是JavaScript中比较复杂的一个运算符.它的运算规则奇怪,容易让人犯错,从而成为JavaScript中“最糟糕的特性”之一. 在仔细阅读了ECMAScript规范的基础上,我画了一张图,我想通过它你会彻底地搞清楚关于==的一切.同时,我也试图通过此文向大家证明==并不是那么糟糕的东西,它很容易掌握,甚至看起…
//如有错误或不同观点,欢迎批评与讨论! 首先,prototype出现的目的,是为了解决 代码重用 的问题 , prototype 相当于是在内存上划分出一个公共的区域, 专用于存放 实例化对象 的相同方法或属性, 一份代码,人人可用: 为方便理解,我们可以先把prototype 当作是CSS中的 class,在prototype上加方法和属性,那么其它对象就会拥有这些方法和属性, 但这些代码紧有一份! <script> function Person() { this.name = '张三'…
说一件重要的事儿:你还没关注公众号[前端印记],更多精彩内容等你探索-- 以下全文7000字,请在你思路清晰.精力充沛的时刻观看.保证你理解后很长时间忘不掉. Node事件循环 Node底层使用的语言libuv,是一个c++语言.他用来操作底层的操作系统,封装了操作系统的接口.Node的事件循环也是用libuv来写的,所以Node生命周期和浏览器的还是有区别的. 因为Node和操作系统打交道,所以事件循环比较复杂,也有一些自己特有的API. 事件循环在不同的操作系统里有一些细微的差异.这将涉及到…
总是会被javascript的event对象的clientX,offsetX,screenX,pageX 弄得头晕,于是决定做个图来区分一下(画得我手那个酸呀....) 先总结下区别: event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 event.pageX.event.pageY 类似于event.clientX.event.clientY,但它们使用的是文档坐标而非…
前言 欢迎阅读「程序员cxuan」 的文章,从今往后,你就是我的读者了. 我的 github bestJavaer 已经收录此文章,目录在 https://github.com/crisxuan/bestJavaer 希望你可以给我一个 star 哦! 这一篇文章是计算机网络连载文章的第四篇,历史文章请阅读 一不小心画了 24 张图剖析计网应用层协议! TCP/IP 基础知识 计算机网络基础知识总结 下面开始本篇文章. 运输层位于应用层和网络层之间,是 OSI 分层体系中的第四层,同时也是网络体…
javascript这门语言一直就像一位带着面纱的美女,总是看不清,摸不透,一直专注服务器端,也从来没有特别重视过,直到最近几年,javascript越来越重要,越来越通用.最近和前端走的比较近,借此机会,好好巩固一下相关知识点. 1.初识replace 在js中有两个replace函数 一个是location.replace(url) 跳转到一个新的url一个string.replace("xx","yy") 替换字符串 返回一个新的字符串,该方法并不改变字符串本…
JavaScript原型链 原文出处:https://www.cnblogs.com/chengzp/p/prototype.html 目录 创建对象有几种方法 原型.构造函数.实例.原型链 instanceof的原理 new运算符 创建对象的方法 在了解原型链之前,首先先了解一下创建对象的几种方式,介绍以下三种. 代码: <script type="text/javascript"> // 第一种方式:字面量 var o1 = {name: 'o1'} var o2 =…
JavaScript原型链及其污染 一.什么是原型链? 1.JavaScript中,我们如果要define一个类,需要以define"构造函数"的方式来define: function xluo() { //定义类xluo() this.a = 10086 //this.a是xluo类的一个属性 } new xluo() 2.了解prototype and __proto__ , JavaScript里面'一切皆对象'. (通用规则,JavaScript默认原型链指向逻辑) 对象有__…