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++

posted @ 2017-09-15 16:55  _increase  阅读(99)  评论(0编辑  收藏  举报