志郑志宇 郑inkczs.hashnode.dev·Oct 16, 2021 · 1 min readEs5原型与继承prototype:函数对象的原型对象(普通对象) __proto__:指向创建它的构造函数的原型对象 原型链的连接是实例(car1)和构造函数(Car)的原型对象(Car.prototype)之间,而不是实例和构造函数之间 构造函数式继承 可以子传父 引用类型的值相互独立 父类构造函数重复执行,每次创建子类实例都会调用一次 脱离于原型链,父类原型链上的方法属性无法继承 function Car(name,price){ this.name = name; this.pric...00
志郑志宇 郑inkczs.hashnode.dev·Oct 16, 2021 · 1 min readThis的四种绑定this的绑定取决于它的调用位置,而不是取决于它的声明位置 function baz(){ //调用栈baz,当前调用位置全局 bar(); } function bar(){ //调用栈baz->bar,调用位置baz foo(); } function foo(){ //调用栈baz->bar->foo,调用位置bar } baz(); this的默认绑定 首先是最常用的函数调用类型:独立函数调用。这条规则是无法应用其他规则时的默认规则。 funct...00
志郑志宇 郑inkczs.hashnode.dev·Oct 15, 2021 · 7 min readd3.js基础及布局DOM操作 d3.select("h3") .selectAll("p") .text("hhh") .style("color","red") .attr("style","opacity:0.3") .append() .html() .insert() .remove() 功能和jQuery差不多 let dataset = ["hello","nihao","zzy"] d3.select(".content").selectAll("p") .data(dataset) .tex...00
志郑志宇 郑inkczs.hashnode.dev·Oct 15, 2021 · 3 min read前端模块化与包管理器什么是模块化? 将一个复杂的程序依据一定的规则封装成几个块文件,并进行组合。 模块化特点 模块中数据与实现是私有的,只向外部暴露一些接口方法与其他模块通信 模块化历程 全局function function util1(){ //... } function util2(){ //... } 引入js文件,这样会污染到全局。当时使用命名空间优化这个问题,引入一个工具对象(不私有) 闭包 向window对象添加全局属性 (function (win){ ...00
志郑志宇 郑inkczs.hashnode.dev·Oct 15, 2021 · 5 min read抽象语法树相关抽象语法树 大多数编译器分为三个主要阶段:解析,转换和代码生成 解析正在获取原始代码并将其转换为更抽象的代码 代码的表示形式。 转换采取这种抽象表示并操纵去做 编译器想要的任何东西。 代码生成采用代码的转换表示形式, 将其转换为新代码。 解析 解析通常分为两个阶段:词法分析和句法分析。 词法分析提取原始代码并将其拆分为标记器(或词法分析器)的事物称为标记。 标记器是由微小的小物体组成的数组,描述了一个孤立的片断的语法。它们可以是数字,标签,标点符号,运算符,任何。 句法分...00