@lizlalala
2016-08-01T16:29:57.000000Z
字数 584
阅读 1160
未分类
最近在做基于百度地图的可视化定制,遇到了函数绑定的问题,一直没有明白,下面po一个小小的栗子把。
//函数定义
function showPopTips(str, e,ee, overlayObj) {
myTool.loadingPopup(hotmapBox);
//this:
switch (str){
case "删除":
deleteVobj.showPop = true;
break;
case "保存":case "编辑":
editVobj.fenceName = overlayObj.name;
editVobj.showPop = true;
break;
case "离开":
leaveVobj.showPop = true;
}
}
//函数调用
var curPolygonObj = {
overlay: e.overlay,
saved: false,
name: "围栏" + (oldOverlaysCount + 1)
}
markerMenu.addItem(new BMap.MenuItem('删除', showPopTips.bind(curPolygonObj,"删除")));
可以看到。bind的第一个参数是作为scope存在的,表明了绑定后的showPoTips中的this的指向。我们在控制台打this可以看到
就是我们绑定的对象。而绑定时的其他参数就是依次作为showPopTip的参数依次下去的。