//JSMap.js
/**
* 用于实现页面 Map 对象,Key只能是String,对象随意
*/
var JSMap = function(){
this._entrys = new Array();
this.put = function(key, value){
if (key == null || key == undefined) {
return;
}
var index = this._getIndex(key);
if (index == -1) {
var entry = new Object();
entry.key = key;
entry.value = value;
this._entrys[this._entrys.length] = entry;
}else{
this._entrys[index].value = value;
}
};
this.get = function(key){
var index = this._getIndex(key);
return (index != -1) ? this._entrys[index].value : null;
};
this.remove = function(key){
var index = this._getIndex(key);
if (index != -1) {
this._entrys.splice(index, 1);
}
};
this.clear = function(){
this._entrys.length = 0;;
};
this.contains = function(key){
var index = this._getIndex(key);
return (index != -1) ? true : false;
};
this.getCount = function(){
return this._entrys.length;
};
this.getEntrys = function(){
return this._entrys;
};
this._getIndex = function(key){
if (key == null || key == undefined) {
return -1;
}
var _length = this._entrys.length;
for (var i = 0; i < _length; i++) {
var entry = this._entrys[i];
if (entry == null || entry == undefined) {
continue;
}
if (entry.key === key) {//equal
return i;
}
}
return -1;
};
}
//MFB_CH.js
document.write("<script src='JSMap.js'language='javascript'></script>")
function MFB_CH(filename,size)
{
MFB_CH.mfb_txt;
}
MFB_CH.mfb_txt = new JSMap();
MFB_CH.mfb_txt.put("Title","hello");
// 为 Person 增加一个方法
MFB_CH.getVal = function(key)
{
return MFB_CH.mfb_txt.get(key);
};
//var.js
document.write("<script src='MFB_CH.js'language='javascript'></script>")
//需要汉化的文件
//测试1、key存在2、key不存在
alert(MFB_CH.getVal("Title"));
alert(MFB_CH.getVal("test"));
//mapTest.htm
<html>
<head>
<title>
Map 对象测试
</title>
<script language="JavaScript" src="JSMap.js"></script>
<script language="JavaScript" src="MFB_CH.js"></script>
<script language="JavaScript" src="var.js"></script>
</head>
</html>
本文介绍了一种使用JavaScript实现自定义Map对象的方法,该对象仅允许字符串作为键,并提供了基本的操作如添加、获取、删除等。此外,还展示了如何通过自定义Map对象来管理汉化文本。
2424

被折叠的 条评论
为什么被折叠?



