[关闭]
@lizlalala 2016-08-01T08:29:57.000000Z 字数 584 阅读 1028

bind

未分类


最近在做基于百度地图的可视化定制,遇到了函数绑定的问题,一直没有明白,下面po一个小小的栗子把。

  1. //函数定义
  2. function showPopTips(str, e,ee, overlayObj) {
  3. myTool.loadingPopup(hotmapBox);
  4. //this:
  5. switch (str){
  6. case "删除":
  7. deleteVobj.showPop = true;
  8. break;
  9. case "保存":case "编辑":
  10. editVobj.fenceName = overlayObj.name;
  11. editVobj.showPop = true;
  12. break;
  13. case "离开":
  14. leaveVobj.showPop = true;
  15. }
  16. }
  17. //函数调用
  18. var curPolygonObj = {
  19. overlay: e.overlay,
  20. saved: false,
  21. name: "围栏" + (oldOverlaysCount + 1)
  22. }
  23. markerMenu.addItem(new BMap.MenuItem('删除', showPopTips.bind(curPolygonObj,"删除")));

可以看到。bind的第一个参数是作为scope存在的,表明了绑定后的showPoTips中的this的指向。我们在控制台打this可以看到

就是我们绑定的对象。而绑定时的其他参数就是依次作为showPopTip的参数依次下去的。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注