<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>根据包名,在指定的空间中创建对象</h3>
<p>输入描述:namespace({a: {test: 1, b: 2}}, 'a.b.c.d')</p>
<p>输出描述:{a: {test: 1, b: {c: {d: {}}}}}</p>
<script>
function namespace(oNamespace,sPackage){
var arr=sPackage.split(".");
var res=oNamespace;//保留对原始对象的引用
for(var i=0,len=arr.length;i<len;i++){
if(arr[i] in oNamespace){//空间名在对象中
if(typeof oNamespace[arr[i]]!=="object"){//如果为原始值
oNamespace[arr[i]]={};//将此属性设为空对象
}
}else{//空间名不在对象中,建立此空间名属性,赋值为空
oNamespace[arr[i]]={};
}
oNamespace=oNamespace[arr[i]];//将指针指向下一个空间名属性
}
return res;
}
</script>
</body>
</html>
4.根据包名,在指定空间中创建对象
猜你喜欢
转载自blog.csdn.net/tozeroblog/article/details/82262046
今日推荐
周排行