jQuery技术

前端进阶(十一):详细图解jQuery对象(8)

字号+ 作者:H5之家 来源:H5之家 2017-04-07 17:03 我要评论( )

我们还可以结合点断调试的方式,来理解那些困扰我们很久的this指向。随时观察this的指向,在实际开发调试中非常有用。 // demo06var a = 10;var obj = {a: 20}function fn () {console.log(this.a);}fn.call(obj);

我们还可以结合点断调试的方式,来理解那些困扰我们很久的this指向。随时观察this的指向,在实际开发调试中非常有用。

// demo06 var a = 10; var obj = { a: 20 } function fn () { console.log(this.a); } fn.call(obj); // 20


this指向obj

补充一个例子

// demo07 function foo() { var a = 10; function fn1() { return a; } function fn2() { return 10; } fn2(); } foo();

这个例子,和其他例子不太一样。虽然fn2并没有访问到foo的变量,但是foo执行时仍然变成了闭包。而当我将fn1的声明去掉时,闭包便不会出现了。我暂时也不知道应该如何解释这种情况。只能大概知道与fn1有关,可能浏览器在实现时就认为只要存在访问上层作用域的可能性,就会被当成一个闭包吧。所以暂时就只能将它作为一个特例记住。

更多的例子,大家可以自行尝试,总之,学会了使用断点调试之后,我们就能够很轻松的了解一段代码的执行过程了。这对快速定位错误,快速了解他人的代码都有非常巨大的帮助。大家一定要动手实践,把它给学会。

最后,根据以上的摸索情况,再次总结一下闭包:

大家也可以根据我提供的这个方法,对其他的例子进行更多的测试,如果发现我的结论有不对的地方,欢迎指出,大家相互学习进步,谢谢大家。

以上就是前端进阶(六):观察函数调用栈、作用域链与闭包的详细内容,更多请关注php中文网其它相关文章!

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 前端基础进阶(十一):详细图解jQuery对象,以及如何扩展jQuery

    前端基础进阶(十一):详细图解jQuery对象,以及如何扩展jQuery

    2017-03-25 10:00

网友点评
/