经典js this指向变化问题

var length=10;

function fn(){

console.log(this.length);

}

var obj={

   var length=5;

method:function(fn){

    fn();

  arguments[0]();

}

}obj.method();

当obj的method方法执行的时候,执行到fn(),fn执行的时候当前的this不是obj还是window,所以当前的length是10,执行到argumens[0]()的时候,还是去执行了fn函数,此时this是argument对象,this.length,就是arguments.length,就是method的参数数量

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。