function ns(pkg) {
if (!pkg) {
return null;
}
var o = {};
var arr = pkg.split('.');
o = o[[ arr[0] ]] = {};
var len = arr.length;
for ( var i = 1; i < len; i++) {
o = o[arr[i]] = {};
}
return o;
}
var pkg = ns("com.momo.test");
alert(pkg.com);
这儿弹出的是undefine,断点调试显示pkg也是undefine这是怎么回事??命名空间JavaScript
if (!pkg) {
return null;
}
var o = {};
var arr = pkg.split('.');
o = o[[ arr[0] ]] = {};
var len = arr.length;
for ( var i = 1; i < len; i++) {
o = o[arr[i]] = {};
}
return o;
}
var pkg = ns("com.momo.test");
alert(pkg.com);
这儿弹出的是undefine,断点调试显示pkg也是undefine这是怎么回事??命名空间JavaScript
解决方案 »
- 简单 表格排序 编辑 拖拽 缩放
- 我正在坐一个网站,需要实现层的折叠效果,要求开始时是折叠上的,而且是多个栏目的。请高手指点!谢谢了。
- 求 js分享功能 可带视频分享的
- 请问如何获取IFRAME(HTML编辑器)中光标(FIREFOX)所在位置,并添加内容?
- 奇怪的问题,点击相应链接为什么不弹出对应的链接地址?
- 如何在框架中传值
- javascript如何对iframe中的表单初始化
- 关于注册验证的问题,只要有一个onblur验证通过给flag赋值true,后面的flag就都为true,ajax没出错
- 正则表达式
- 前端小白。
- Ckeditor 获取上传图片的地址的问题。
- iterator中getElementById?求大侠指导
if (!pkg) {
return null;
}
var o = {},x;
var arr = pkg.split('.');
x = o[[ arr[0] ]] = {};
var len = arr.length;
for ( var i = 1; i < len; i++) {
x = x[arr[i]] = {};
}
return o;
}你每次都将o给重新赋值而不是指向新的{},最后出来的不知道是啥玩意了,改一下。
if (!pkg) {
return null;
}
var o = {};
var arr = pkg.split('.');
if(arr.length){
var currentPath = o;
var len = arr.length;
for ( var i = 0; i < len; i++) {
currentPath[arr[i]] = {};
currentPath = currentPath[arr[i]];
}
}
return o;
}function test(){
var pkg = ns('com.momo.test');
console.log(pkg);
}
lz要的应该是这个效果吧- -.
按照3楼所说,断点调试显示pkg任然是undefine,关于js对象赋值的问题
如 x=arr[0]={},x=arr[1]={},像这种形式x的值arr[0]没有被arr[1]覆盖,任然可以通过{x[arr[0]]}arr[1]一层一层访问是什么原理??
v = v.split(".");//返回字符串数组
var o = window[v[0]] = window[v[0]] || {};
for(var i = 1 ; i < v.length ; ++i){
o = o[v[i]] = o[v[i]] || {};
}
}
ns("com.momo.test");
alert(com.momo.test);
var arr = new Array(3)
arr[0] = "Father"
arr[1] = "Son"
arr[2] = "Grandson"
var o = {};
o=o[arr[0]]=o[arr[0]] || {};
o=o[arr[1]]=o[arr[1]] || {};
o=o[arr[2]]=o[arr[2]] || {};
结果是Father Father.son都是undefine,这是怎么回事???
if (!pkg) {
return null;
}
var o = {},x;
var arr = pkg.split('.');
x = o[[ arr[0] ]] = {};
var len = arr.length;
for ( var i = 1; i < len; i++) {
x = x[arr[i]] = {};
}
return o;
}var result = ns('com.momo.test');
console.log(result)
console.log(result.com)
console.log(result.com.momo)
console.log(result.com.momo.test)