需求
写一个创建命名空间的函数namespace,参数str是一个以.为分隔的字符串,函数定义后可以以如下的方式使用:
namespace("com.so.image");
结果--> com.so.image.Slider={};
答案:
<script>
//思路,我想到的是用eval,oh,万恶的eval
function namespace(str){
var tempArr = str.split(".");
var tempExpression = "";
var tempStr = "";
for(var i=0;i<tempArr.length;i++){
tempStr += tempArr[i] + ".";
tempExpression += tempArr[i]+"={};"+tempStr;
}
//去尾
var reg = /(.*;).*/g;
tempExpression = tempExpression.replace(reg,"$1");
eval(tempExpression);
}
namespace("a.b.c.ddd");
</script>