作家
登录

10个JavaScript常见BUG及修复方法

作者: 来源: 2017-12-06 09:34:30 阅读 我要评论

obj.whoAmI(); // 输出"MyObj" (和期望一致)whoAmI(); // 输出"window" (竟然输出了window)

当我们把 obj.whoAmI 赋值给 whoAmI 的时刻,这个新的变量 whoAmI 是定义在全局下,是以 this 指向全局的 window ,而不是 MyObj 。如不雅我们真的要获取对 MyObj 的函数的引用,须要在其感化域下。

var MyObject = function() {}MyObject.prototype.whoAmI = function() {    console.log(this === window ? "window" : "MyObj");};var obj = new MyObject();obj.w = obj.whoAmI;   // 任然在obj的感化域obj.whoAmI();  // 输出"MyObj"obj.w();       // 输出"MyObj"

9. setTimeout/setInterval函数第一个参数误用字符串

6. 在for轮回中缺点的定义函数

如不雅你将一个字符串作为setTimeout/setTimeInterval,它会被传给函数构造函数并构建一个新的函数。该操作流程很慢并且低效,并导致bug出现。

	
				
			

  推荐阅读

  IBM使用GPU将机器学习效率提升十倍

开辟者大年夜赛路演 | 12月16日,技巧立异,北京不见不散 在初步测试时代,IBM 应用了配有 8GB GDDR5 内存的 NVIDIA Quadro M4000 显卡。在这种价格适中的专业图形卡上 IBM 证实,与标准的>>>详细阅读


本文标题:10个JavaScript常见BUG及修复方法

地址:http://www.17bianji.com/lsqh/39495.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)