为了账号安全,请及时绑定邮箱和手机立即绑定

为什么这里的this是指向windows

为什么这里的this是指向windows

子衿沉夜 2018-09-04 09:09:00
co(function *() {            var now = Date.now();            yield sleep200;            console.log(Date.now() - now);        });        function co(fn){            var gen = fn();            next();            function next(res){                var ret;                ret = gen.next(res);                // 全部结束                if(ret.done){                    return;                }                // 执行回调                if (typeof ret.value == 'function') {                    ret.value(function(){                        next.apply(this, arguments);                    });                    return;                }                throw 'yield target no supported!';            }        }        function sleep200(cb){            setTimeout(cb, 200)        }在next.apply()那一行。我这里有点糊涂了,像这种点调用的话,this不应该指向调用者吗?也就是next对象,可这里next是个函数。可为什么是window对象呢
查看完整描述

1 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

ret.value(function(){

    next.apply(this, arguments);

});

这里ret.value的参数是一个匿名函数,你见过匿名函数中的this不是window的情况吗?


查看完整回答
反对 回复 2018-10-11
  • 1 回答
  • 0 关注
  • 497 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信