this并非指向自身-大神绕道

先上代码:

function foo(num){
  console.log("foo:"+num);
  this.count++;
}

foo.count=0;

var i;

for(i=0;i<10;i++){

  if(i<5){

    foo(i);

  }

}

输出 6.7.8.9

console.log(foo.count);//0   what??

this并没有指向函数本身,foo被调用了4次 但是输出都是0;
foo.count实际上是在foo上添加了名为count的属性, 但是其实在全局创建了一个count 且值为NaN,

NaN-----------------------undefined++

原文地址:https://www.cnblogs.com/trend/p/7527274.html