JS里原型、原型链以及instanceof和new实现
JS 对象的 __proto__ 所有的引用类型(数组、对象、函数),都有一个__proto__属性,属性值是一个普通的对象 所有的函数,都有一个 prototype 属性,属性值也是一个普通的对象 所有的引用类型(数组、对象、函数),__proto__属性值指向它的构造函数的 prototype 属性值 注:ES6 的箭头函数没有prototype属性,但是有__pro...
JS 对象的 __proto__ 所有的引用类型(数组、对象、函数),都有一个__proto__属性,属性值是一个普通的对象 所有的函数,都有一个 prototype 属性,属性值也是一个普通的对象 所有的引用类型(数组、对象、函数),__proto__属性值指向它的构造函数的 prototype 属性值 注:ES6 的箭头函数没有prototype属性,但是有__pro...
题目:ES5 中常用继承方法。 方法一:绑定构造函数 缺点:不能继承父类原型方法/属性 function Animal() { this.species = "动物"; } function Cat() { // 执行父类的构造方法, 上下文为实例对象 Animal.apply(this, arguments); } /** * 测试代码 */ var c...
普通函数和箭头函数的 this 还是一道经典题目,下面的这段代码的输出是什么?(为了方便解释,输出放在了注释中) function fn() { console.log(this); // 1. {a: 100} var arr = [1, 2, 3]; (function () { console.log(this); // 2. Window...
原始数据类型和判断方法 题目:JS 中的原始数据类型? ECMAScript 中定义了 7 种原始类型: Boolean String Number Null Undefined Symbol(新定义) BigInt(新定义) 注意:原始类型不包含 Object 和 Function 题目:常用的判断方法? 在进行判断的时候有typ...
call、apply、bind实现 感谢 @purain 的指正,call 和 apply 更完美的实现要借助 Symbol。具体请看Issue 实现 call 来看下call的原生表现形式: function test(arg1, arg2) { console.log(arg1, arg2); console.log(this.a, this.b); } ...
正则常见函数 正则表达式常用的方法分为 2 类: 字符串上调用,进行正则规则匹配。操作对象是正则表达式 正则表达式上调用。操作对象是字符串。 准备了下面代码: const pattern = /runoob/gi; // 正则表达式 const str = "Visit Runoob!runoob"; // 待匹配字符串 ① 字符串上调用的方法,常见的有:searc...
Flex快速上手 容器的属性和常用值 容器可以通过设置display属性为flex / inline-flex(行内 flex)来指定其为 flex 布局。 下面,将记录一下容器的属性和常用值,基本可以囊括大多数应用场景。 child_database 项目的属性和常用值 首先来看下项目元素上常用的 2 个属性,order和flex-grow: embed child_dat...
:nth-child(n) 选择器匹配属于其父元素的第 n 个子元素,借助这个特性,可以实现选择第偶数次序的子元素、选择一定范围内的子元素等“批量选择操作”。 而它比较难理解的地方是参数表达式中n的含义,以及如何进行数学运算,这也是面试中考察的难点。 nth-child 介绍 :nth-child(n) 选择器匹配属于其父元素的第 n 个子元素。 使用它的时候需要注意几点: ...
结构型模式:解决怎样组装现有对象,设计交互方式,从而达到实现一定的功能目的。例如,以封装为目的的适配器和桥接,以扩展性为目的的代理、装饰器 享元模式 享元模式:运用共享技术来减少创建对象的数量,从而减少内存占用、提高性能。 什么是“享元模式”? 享元模式:运用共享技术来减少创建对象的数量,从而减少内存占用、提高性能。 享元模式提醒我们将一个对象的属性划分为内部和外部状态。 ...
行为型模式:描述多个类或对象怎样交互以及怎样分配职责 策略模式 策略模式定义:就是能够把一系列“可互换的”算法封装起来,并根据用户需求来选择其中一种。 什么是策略模式? 策略模式定义:就是能够把一系列“可互换的”算法封装起来,并根据用户需求来选择其中一种。 策略模式的实现核心就是:将算法的使用和算法的实现分离。算法的实现交给策略类。算法的使用交给环境类,环境类会根据不同的情况选择...