细心一看,这位客长给出的解决办法切实其实也达到了类似的效不雅。赞一个!我想说的是,跟着代码的增长,函数嵌套、各级调用等变得越来越复杂,那么传递一个对象的引用将变得越来越不明智,它会把你的代码弄得异常乱,甚至你本身都无法懂得清跋扈。而this机制供给了一个加倍优雅而灵活的筹划,传递一个隐式的对象引用让代码变得加倍简洁和复竽暌姑。好了,知道了this的用处,那么再看看我们对它的误会。
3、关于this的误会
- function fn() {
- console.log( this.a );
- }
- var obj = {
- a: 2,
- fn: fn
- };
- var bar = obj.fn; // 函数引用传递
- var a = "全局"; // 定义全局变量
- bar(); // "全局"
信赖很多童鞋是学过其它说话的,在很多编程说话中都有this的机制,惯性思维把其它说话里对它的懂得带到了JavaScript中。同时,因为this这个单词典懂得导致了我们产生了对它各类各样的误会。所以,开端前,我们先澄清下对它的误会。
3.1 误会一:this引用function本身
我们都知道,在函数里引用函数可以达到递归和给函数属性赋值的效不雅。而这在很多应用处景下显得异常有效。所以,很多人都误认为this就是指引function本身。例如:
- function fn(num) {
- console.log( "fn: " + num );
- // count用于记录fn的被调用次数
- this.count++;
- }
- fn.count = 0;
- var i;
- for (i=0; i<10; i++) {
- if (i > 5) {
- fn( i );
- }
- }
- // fn: 6
- // fn: 7
- // fn: 8
- // fn: 9
- console.log( fn.count
推荐阅读
上个月,我们在《创建数据中间监控筹划的最佳实践筹划》一文中商量了一个异常有趣的话题。然则,似乎关于这方面话题的评论辩论远未停止。在以前的一个月中,我收到了大年夜量关于现代数据>>>详细阅读
地址:http://www.17bianji.com/lsqh/34612.html
1/2 1