- 博客(6)
- 收藏
- 关注
原创 JS 显示原型、隐式原型与原型链 / 构造函数、实例、实例原型之间的关系
什么是原型链原型链是利用原型,让一个引用类型继承另一个 引用类型的属性和方法。为了说明白原型链,需要从构造函数、原型与实例的关系讲起。构造函数、原型与实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针(显式原型),而实例都包含一个指向原型对象的内部指针(隐式原型)。那么,假如让原型对象等于另一个类型的实例,结果会让此事的原型对象包含一个指...
2018-03-31 16:06:49 1772
原创 JavaScript new 的实现
new 特性《你不知道的JavaScript》提到:使用 new 调用函数,或者说发生构造函数调用时,会自动执行下面的操作:创建(或者说)构造一个全新的对象;这个新对象会被执行 [[Prototype]] 连接;这个新对象会绑定到函数调用的 this;如果函数没有返回其他对象,那么 new 表达式中的函数调用会自动返回这个新对象。new 的实现用法: fakeNe...
2018-03-31 14:49:10 536
原创 JavaScript bind() 方法的实现
bind() 方法的特点bind() 方法会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为它运行时的 this,可以把除了第一个参数以外的其他参数都传递给下层的函数(这种技术称为“部分应用”,是“柯里化”的一种)注①如果 bind() 返回的函数 作为构造函数使用,bind 时指定的 this 值会失效,但传入的参数有效。 new 调用返回的实例能够继承 绑定...
2018-03-31 11:00:02 1379
原创 JavaScript call() 与 apply() 方法的实现与思路解析
用一个例子开始greet = "Hi, Im global";let foo = { greet: "Hello"};let bar = function(name, character) { console.log(this.greet); return { greet: this.greet, person: `${name} is ${char...
2018-03-30 17:15:23 336
原创 一道 promise 亮灯问题的 思路演进 与 深坑 (JS异步机制) 分析
问题红灯三秒亮一次,绿灯一秒亮一次,黄灯2秒亮一次;如何让三个灯按照这个规律不断交替重复亮灯?(用Promse实现)三个亮灯函数已经存在:function green() { console.log("green");}function yellow() { console.log("yellow");}function red() { console.log(...
2018-03-17 23:42:24 1300
原创 单线程 JavaScript 的异步机制与经典 for 循环面试题
从一个经典的 for 循环问题开始for (var i = 1; i <= 5; i++) { setTimeout( function timer() { console.log(i); }, i*1000)}输出是:每隔1秒,输出一个6,共5次。原理这样的输出,是由 JavaScript 的单线程及异步机制决定的。JavaScript 是单线...
2018-03-07 17:38:32 978 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人