直接上代码:
var c = 1, fn = {
c: 2,
f: function(){
console.info(this.a) //返回什么?
setTimeout(function(){alert(this.c)},1000) //返回什么?
}
};
fn.f() //返回什么?
var b = t.f;
b.call() //返回什么?
function c(arg){
arg.call() //返回什么?
console.info(c,this)
//返回什么?c(arg) 和 function() ?
}
c.call(b) //返回什么?
c.fn = function(){alert(this.mm)}
var m = {mm:2};
c.fn.call(m) //返回什么?
c.fn.apply(m) //返回什么?
在js中this主要区别是不是this所在作用域,而是调用它的那个对象的范围。