这个人很懒
这个人很懒
  • 发布:2015-04-24 14:26
  • 更新:2015-04-24 17:24
  • 阅读:1244

莫名其妙Array对象多了个getHbuilderParentNodes方法

分类:HBuilder

升级到最新版HBuilder, 发现之前的功能在内置浏览器都不能正常运行了, 发现Array.prototype多了个方法, 有人碰到这个问题么? 有这个破玩意, 只能在外部浏览器测试了:(

2015-04-24 14:26 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

@DCloud_HB_一三

这应该是HBuilder为了实现某个特定功能,新增的一个内部函数。

通常在用for...in循环Array时,建议使用hasOwnProperty来判断识别一下。这样可以过滤掉那些扩展的属性。或者不使用for...in循环数组

(很多js框架为了方便,会扩展原生对象,尤其是Array,所以在for...in数组时,最好使用hasOwnProperty判断一下)

这个人很懒

这个人很懒 (作者)

这么回复我就没话说了:(
用了一些第三方的开源组件, 如果都给修正一遍, 还不如我就不用内部浏览器测试了

DCloud_UNI_FXY

DCloud_UNI_FXY

这是一个在目前情况下的建议。至于getHbuilderParentNodes之类函数将来是保留还是移除,需要各方面做取舍(之前回复中已经@ 了具体负责人)

我只是提供了一个解决类似问题的方案,为何还能搞得没话说了?

  • 这个人很懒 (作者)

    我尝试过修正这个库, 改不完啊, 太多地方用了for ... in遍历数组

    2015-04-24 17:25

  • DCloud_UNI_FXY

    我咨询了一下。该函数是为了实现在预览的时候,点击预览界面的元素,定位到编辑器里的代码行(该功能目前仅windows可用)。

    已经把这个问题通知到具体负责人,他会再看看有没有其他办法,如果有其他办法,那么会取消此类扩展函数。

    2015-04-24 17:37

  • 这个人很懒 (作者)

    临时用 delete Object.prototype.getHbuilderParentNodes; 可以解决, 不过这样直接扩展最底层的Object, 真不是好办法, 估计会影响一大片:)

    2015-04-26 14:59

  • DCloud_UNI_FXY

    下个版本会在仅用到此函数的时候才扩展,使用后自动删除。

    2015-04-26 16:34

这个人很懒

这个人很懒 (作者)

建议还是别随便给Array加扩展方法, 本来用着挺好的, 加了这个东西, 直接边改边看就废了

该问题目前已经被锁定, 无法添加新回复