es5实现es6+新特性
用ECMAScript2015来实现ECMAScript2016+的内容
LiuJie_Boom
高粒度抽象的代价就是无法做到低粒度的修改
展开
-
(es5实现es6+5)使用es5来实现es6Class类
文章结构推荐阅读声明类与创建对象构造函数注意点给类添加属性和方法不好的实现方式可以使用的方式类实现继承getter和setter私有属性兼最终代码推荐阅读es6Class讲解new关键字原理模拟对象的访问器属性与数据属性声明类与创建对象// 4.自定义构造函数创建对象function CreateObj(cname, age) { this.cname = cname; this.age = age;}let obj = new CreateObj("zhangsan",原创 2022-04-26 14:01:11 · 583 阅读 · 2 评论 -
(es5实现es6+4)使用es5来实现es6数组原型新增方法flat
简单回顾一下var newArray = arr.flat([depth])参数 depth 可选 指定要提取嵌套数组的结构深度,默认值为 1。返回值 一个包含将数组与子数组中所有元素的新数组。const arr1 = [0, 1, 2, [3, 4]];console.log(arr1.flat());// expected output: [0, 1, 2, 3, 4]const arr2 = [0, 1, 2, [[[3, 4]]]];console.log(arr2.flat原创 2022-04-25 16:37:42 · 273 阅读 · 0 评论 -
(es5实现es6+3)使用es5来实现es6的模板字符串功能
使用的知识点1、String.replace()2、eval()function Analyze(str, data) { return str.replace(/\$\{(.+?)\}/g, (match, key) => { if (typeof data[key] !== "function") { return eval("data[key]"); } else { return data[key]原创 2022-04-23 17:52:45 · 360 阅读 · 0 评论 -
(es5实现es6+2)使用es5来实现es6的解构赋值
明白我们的需求是什么?通过数组的形式去解构赋值数组时,按照数组下标的顺序进行赋值,没有对应的值就为undefined通过对象的形式去解构赋值对象时,按照相同的属性名进行赋值,没有对应的值就为undefined,且可以给属性// es5实现const关键字var _const = (function() { var obj = {}; return function(key, value) { if (value) { if (!obj[k原创 2022-04-23 00:34:05 · 502 阅读 · 0 评论 -
(es5实现es6+1)使用es5来实现es6的const和let关键字(存在一个难点未解决,请求大家帮助)
简单回顾let的特点1、具有块级作用域2、没有变量提升3、具有暂时性死区4、不能重复声明const的特点1、具有块级作用域2、声明常量必须赋值3、内存地址不能修改4、不能重复声明es5实现实现let具有块级作用域也就是在使用let的作用域的父作用域中无法调用,没有变量提升,无法在let之前调用变量,具有暂时性死区说明只能在let使用的作用域中调用变量。具有块级作用域var _let = (function() { var obj = {}; retur原创 2022-04-22 15:55:09 · 638 阅读 · 0 评论