Object.create基本实现原理
function create(obj) {
function F() {}
F.prototype = obj
return new F()
}
reverse底层原理和扩展
Array.prototype.myReverse = function () {
var len = this.length;
for (var i = 0; i < len; i++) {
var temp = this[i];
this[i] = this[len - 1 - i];
this[len - 1 - i] = temp;
}
return this;
}
实现一个基本的Event Bus
class EventEmitter {
constructor () {
this.events = this.events || new Map()
}
addListener (type, fn) {
if (!this.events.get(type)) {
this.events.set(type, fn)
}
}
emit (type) {
let handle = this.events.get(type)
handle.apply(this, [...arguments].slice(1))
}
}
let emitter = new EventEmitter()
emitter.addListener('ages', age => {
console.log(age)
})
emitter.emit('ages', 18)