你不知道的this指向

70 阅读1分钟

在记录本文之初,我认为没啥好记的。越研究,越发现,还能这样?带着惊叹,将本知识点内容提炼个人认为,简单且重要。

    function foo(num) {

        console.log( "foo: " + num );

        // 记录 foo 被调用的次数

        this.count++;
    }

    foo.count = 0;

    var i;

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

        if (i > 5) {

        foo( i );

        }
    }
// foo 被调用了多少次?

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

foo被调用了 四次,内部this和全局this指向不同

最终结果 foo.count = 0
    this的问题this解决
    回避问题解决法
词法作用域
    function foo(num) {

        console.log( "foo: " + num );

        // 记录 foo 被调用的次数

        data.count++;

    }

    var data = {

        count: 0

    };

    var i;

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

        if (i > 5) {

        foo( i );

        }
    }
    先写这么多下次再写。。78