有如下代码片段::
var obj ={a:1,b:function () {alert(this.a)}};
var fun =obj.b;
fun();
运行结果是?
var b = function(){
alert(this.a);
},
obj = {
a:1,
b:b // 把函数独立出来
};
var fun = obj.b;// 存储的是内存中的地址
fun()
虽然fun是obj.b的一个引用,但是实际上,它引用的是b函数本身,因此此时的fun()其实 是一个不带任何修饰的函数调用,所以this指向window。所以为undefined。