知识点
new
的时候的返回值- ES5的继承
- ES6的继承
- Proxy
题目
请你完成ObserverableArray
,它的实例和普通的数组实例功能相同,但是当调用:
push
pop
shift
unshift
splice
sort
reverse
这些方法的时候,除了执行相同的操作,还会把方法名打印出来。例如:
const arr = new ObserverableArray()
arr.push('Good') // => 打印 'push',arr变成了 ['Good']
注意,不能修改Array
的prototype
。还有函数return
的值和原生的操作保持一致。
实现
我先想到的是使用继承实现,利用原型继承Array
,然后添加属于自己的特殊的push
等方法
先用ES6的class
和extends
实现,extends实现的继承包括了以下的内容:
- 类的