- 博客(5)
- 收藏
- 关注
原创 函数柯里化 ,经典面试题
function currying(fn,length){ return function(...args){ if(args.length>=length){ return fn(...args) } // bind()函数既保留了上一个调用的参数,又返回一个新函数 return currying(fn.bind(null,...args),length-args.length) } } function add(...args){ retur
2020-11-23 23:30:57
609
原创 原型与原型链
function fu() {} var son = new fu(); console.log(fu); // 函数fu console.log(fu.prototype.constructor); // 就是fu console.log(Object); console.log(Object.prototype.constructor); // 就是Object console.log(son.__proto__); // 实例对象的__proto__属性即他的原型 console.log(fu.
2020-11-10 23:27:14
132
原创 js实现bind简单易懂
var name = "她"; var o = { name: "你", }; function fn(a, b) { console.log(a + b + this.name); } Function.prototype._bind = function(obj, ...args) { // 返回一个新函数 return (...arr) => { return this.call(obj, ...args, ...arr); // this即fn }; }; fn._
2020-10-15 17:17:54
199
原创 js实现快排简单易懂
var arr = [4,3,6,2,6,8,9,0,1] function quick(args) { if (args.length <= 1) { return args; } let compare = args.shift(), // 拿出第一个作为比较值 left = [], // 装小的 right = []; // 装大的 for (let i = 0; i < args.length; i++) { if (args[i] <
2020-10-14 19:48:45
248
原创 ES6实现call方法
//模拟call方法 Function.prototype.call_ = function(obj, ...args) { obj = obj ? Object(obj) : window; obj.fn = this; // this即fn obj.fn(...args); delete obj.f; }; var name = "她"; var o = { name: "你", }; function fn(a, b) { console.log(a + b + this.na
2020-10-11 21:09:24
467
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人