书中有一段这样的代码我理解的执行过程是这样的实际输出是这样的所以我不明白的是为什么只输出了一个2__self.apply(this, arguments)这一句应该是执行了2次才对
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
var func = function() {
console.log(2);
}
func = func.before(function() {
console.log(1);
})
此时 func 为 beforefn.apply(this, arguments);//console.log(1)
return __self.apply(this, arguments);//console.log(2)
func = func.after(function() {
console.log(3)
})
此时func 为 __self.apply(this, arguments);
重点来了! 这里的self也就是this 指向的是上方的 第一个func, 也就是 console出 1 和 2 的函数
afterfn.apply(this, arguments);//console.log(3)
最终的func是最后return出来的函数,只会执行一次哦。
添加回答
举报
0/150
提交
取消