刘备忘录

文章 评论 浏览 418

刘备忘录 2022-05-04 13:57:51

@zhongtingbing 你去试试在 不加 apply 时去 sayHi 函数里打印下 this看看什么

是指向window的。因为 sayHi 函数定义在全局中,所以调用时里面this指向window,
所以才需要加上 apply,显示绑定 this 值(input对象)到 sayH 函数里面去

不加apply,sayHi里面this肯定是指向window的,但是加上apply后,fn.apply(this, arguments)这段代码里面的this的指向就要分情况讨论了,而且这个this就是sayHi里面的this。这里的情况其实指的就是setTimeout里面的回调函数是普通函数还是箭头函数。如果是箭头函数,则这里的this最终指向的是input对象,如果为普通函数,this则指向window。setTimeout关于this的问题 | MDN箭头函数 | MDN

  1. 箭头函数表现

箭头函数表现

2. 普通函数表现

普通函数表现

3. 解决办法

解决办法

第 3 题:什么是防抖和节流?有什么区别?如何实现?

刘备忘录 2022-05-04 13:50:13

var _ = function(obj) {
if (!(this instanceof _)) return new _(obj);
this._wrapped = obj;
this.add = function () {
}
}

为什么不利用这种方式来创建 _ ,这样还能省一个mix的逻辑。

underscore 系列之如何写自己的 underscore

刘备忘录 2022-05-04 13:50:05

@mqyqingfeng 博主,你二版的代码
var arr = _.chain([1, 2, 3]).push(4).shift().value();
console.log(arr) // [2, 3, 4]
没有办法用这个代码进行测试

underscore 系列之链式调用

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文