![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端学习
ray254258
这个作者很懒,什么都没留下…
展开
-
防抖与节流
防抖 debounce 函数防抖就是在函数需要频繁触发的情况下,只有足够的空闲时间,才执行一次。 典型应用 百度搜索框在输入稍有停顿时才更新推荐热词。 拖拽 function debounce(handler, delay) { delay = delay || 300; var timer = null; return function () { var _self = this, _args = arguments; clearTimeout(timer)原创 2021-04-07 11:23:47 · 76 阅读 · 0 评论 -
使用 Promise 封装一个 AJAX
使用 Promise 封装一个 AJAX ajax 的 xhr 对象的 7 个事件 onloadstart 开始 send 触发 onprogress 从服务器上下载数据每 50ms 触发一次 onload 得到响应 onerror 服务器异常 onloadend 请求结束,无论成功失败 onreadystatechange xhr.readyState 改变使触发 onabort 调用 xhr.abort 时触发 实现代码 const ajax = (obj)原创 2021-04-07 10:30:25 · 168 阅读 · 0 评论 -
对象引用问题
对象引用问题 - 1 var a = { n: 1 }; var b = a; a.x = a = { n: 2 }; console.log(a.x); // --> undefined console.log(b.x); // --> {n: 2} 优先级。.的优先级高于=,所以先执行 a.x,堆内存中的{n: 1}就会变成{n: 1, x: undefined},改变之后相应的 b.x 也变化了,因为指向的是同一个对象。 赋值操作是从右到左,所以先执行 a = {n: 2},a 的引原创 2021-04-07 10:03:22 · 183 阅读 · 0 评论 -
bind、apply手写
自封装 bind 方法 因为 bind 的使用方法是 某函数.bind(某对象,…剩余参数) 所以需要在 Function.prototype 上进行编程 将传递的参数中的某对象和剩余参数使用 apply 的方式在一个回调函数中执行即可 要在第一层获取到被绑定函数的 this,因为要拿到那个函数用 apply /** * 简单版本 */ Function.prototype.myBind = (that, ...args) => { const funcThis = this;原创 2021-04-06 18:48:06 · 99 阅读 · 0 评论 -
函数式编程手写
函数式编程 compose 实现以下功能: compose([a, b, c])('参数') => a( b( c('参数') ) ) function compose(funcs) { var len = funcs.length; var index = len - 1; for (let i = 0; i < len; i++) { if (typeof funcs[i] !== "function") { throw new TypeError("Ex原创 2021-04-06 18:35:11 · 75 阅读 · 0 评论 -
说输出
下面的代码会输出什么? function A(name) { this.name = name || "Tom"; this.msg = "use 'this.' set in function"; } function B() {} B.prototype = A; var b = new B(); console.log(b.name); console.log(b.msg); 答案是: A undefined 分析 b.name返回 A,是因为b上面没有name属性,他就会沿着原型链原创 2021-04-06 18:20:31 · 72 阅读 · 0 评论 -
Promise.all
Promise.all Promise.all 接收一个 promise 对象的数组作为参数,当这个数组里的所有 promise 对象全部变为 resolve 或 有 reject 状态出现的时候,它才会去调用 .then 方法,它们是并发执行的。 Promise.all 简介 Promise.all(promiseArray) 方法是 Promise 对象上的静态方法,该方法的作用是将多个 Promise 对象实例包装,生成并返回一个新的 Promise 实例。 参数:promiseArray,是一个 P原创 2021-04-06 11:04:27 · 73 阅读 · 0 评论 -
2021-04-06
this 指向 头条一面 请分别写出下面题目的答案。 function Foo() { getName = function () { console.log(1); }; return this; } Foo.getName = function () { console.log(2); }; Foo.prototype.getName = function () { console.log(3); }; var getName = function () { consol原创 2021-04-06 09:13:22 · 57 阅读 · 0 评论