百度地图中的一段js,随机回调函数。
来源:互联网 发布:新东方swf播放器 mac 编辑:程序博客网 时间:2024/06/06 06:40
function translate(point, type, callback) {
var callbackName = 'cbk_' + Math.round(Math.random() * 10000);
BMap.Convertor[callbackName] = function(xyResult) {
alert(callbackName);
delete BMap.Convertor[callbackName];
};
setTimeout(function() {
BMap.Convertor[callbackName].call();
}, 1000);
}
window.BMap = window.BMap || {};
BMap.Convertor = {};
BMap.Convertor.translate = translate;
})();
BMap.Convertor.translate();
BMap.Convertor.translate();
1.通过随机数,来实现回调函数回调的目标都不一样。
2.BMap.Convertor.translate()方法调用,会产生一个新的内存空间,所以callbackName在每一个内存空间指向是不同的,每个随机函数不会相互污染。
如下是a b会相互污染的
(function(){
var a = 1;
var b = 2;
var MyClass = function(x, y){
a = x || 0;
b = y || 0;
}
MyClass.prototype = {
c: "c",
d: "d",
geta: function(){
return a;
},
seta: function(i){
a = i;
},
getb: function(){
return b;
},
setb: function(i){
b = i;
}
}
window.MyClass = MyClass;
})()
调用myClass方法时,function内部的a b变量其实都是外部作用域的变量,所以指向的内存地址始终不变。不论你是用new还是单独调用,正确的方法是将a b变量放在function内部,从而实现private功能的实例变量
- 百度地图中的一段js,随机回调函数。
- JS中的回调函数
- js和jquery中的回调函数
- 理解 JS 回调函数中的 this
- js回调函数
- js回调函数
- JS回调函数
- js回调函数
- js回调函数
- js回调函数
- js回调函数
- js-回调函数
- JS回调函数
- js回调函数
- js 回调函数
- js回调函数
- JS回调函数
- js回调函数
- PHP 数学运算之类笔记
- POJ-1067 取石子游戏 解题报告
- 2.调用第三方app并返回标识
- WINAPI总结
- ios pdf相关的知识,先贴个链接,正在做这方面项目,等有些成果后回来完成这文章。
- 百度地图中的一段js,随机回调函数。
- 10年打工总结了6句话(转)
- 三大数学博弈:巴什博奕 威佐夫博奕 尼姆博奕
- The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 010
- jquery的ajax返回json数据另外一个例子(不继承json-default)
- substr summary
- iphone开发过程中的本地化
- TCP/IP、Http、Socket的区别
- JAVA异常设计