尝试在名称空间内定义全局映射,并在那些名称空间函数内访问全局映射。但继续获取Uncaught SyntaxError:意外标识符。如果有人能指导我在名称空间函数中定义全局映射并进行访问,将不胜感激。
var namespace = {
var mymap = new map();
cm: function () {
var childContainer = $("<div>");
namespace.myMap.set(cc, childContainer);
},
hm: function(ccm, data){
var cMenuItem = ccm.innerHTML;
for (var i = 0; i < data.c.length; ++i){
if ( cMenuItem === data.c[i]['l']){
namespace.Menus(data.c[i]);
namespace.myMap.get(cc);
}
}
}
};
错误在第一行var mymap = new map();
中以Uncaught SyntaxError: Unexpected identifier
的形式出现
答案 0 :(得分:0)
您要在对象内部声明var
。你不能这样做。您只能在函数中声明变量。
您所做的:
var namespace = {
var mymap = new map(); // <------ this line
cm: function () {
var childContainer = $("<div>");
namespace.myMap.set(cc, childContainer);
},
hm: function(ccm, data){
var cMenuItem = ccm.innerHTML;
for (var i = 0; i < data.c.length; ++i){
if ( cMenuItem === data.c[i]['l']){
namespace.Menus(data.c[i]);
namespace.myMap.get(cc);
}
}
}
};
您应该做什么:
var namespace = {
mymap: new map(); // <----- this line
cm: function () {
var childContainer = $("<div>");
namespace.myMap.set(cc, childContainer);
},
hm: function(ccm, data){
var cMenuItem = ccm.innerHTML;
for (var i = 0; i < data.c.length; ++i){
if ( cMenuItem === data.c[i]['l']){
namespace.Menus(data.c[i]);
namespace.myMap.get(cc);
}
}
}
};
此外,如评论中所述,map()
不是Map()
。