这是技术蛋老师讲的一道题目,
首先先看执行的位置,
a();-->this指向window没问题
c(); // c是什么? 是b.detail 。 是一个函数体,也就是说,相当于
这个函数体放在外部执行,那么this很显然是windows
b.a() ;// b.a是什么? --》 是给b对象添加一个属性a ,给这个属性a赋值是 函数a的函数体,那么执行b.a()是隐式绑定的是对象b,所以结果是小黄。
d(b.detail); // 这里特别具有迷惑性, 看执行的位置,在function d(i)中,return i();执行位置是外面,不属于b对象,所以this的指向应该是window,
如果换一种简单的写法,
<