日期:2014-05-16  浏览次数:20383 次

JavaScript中this使用问题
直接上代码:
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所在作用域,而是调用它的那个对象的范围。