ext源码分析之namespace

namespace : function(){
var o, d;
Ext.each(arguments, function(v) {
d = v.split(".");
o = window[d[0]] = window[d[0]] || {};
Ext.each(d.slice(1), function(v2){
o = o[v2] = o[v2] || {};
});
});
return o;
}

split 根据切割点返回数组类型 如果没有这个切割点 就返回一个包含它本身的数组

"ss".split("fdgf"); // [ss]

o = window[d[0]] = window[d[0]] || {};
window[d[0]] 肯定是undefined 但和{} 一或之后就是一个{}了也就是一个对象了
于是就可以使用d[0]了
o =window["ss"] = window["ss"] || “我是空对象";
alert(ss) // 我是空对象

alert(["sss","ccc","fff"].slice(1)); //ccc,fff
alert( Object.prototype.toString.apply(["sss","ccc","fff"].slice(1)));
// [object array]

"aa.bb.cc" 为字符串 只循环一次
首先把aa注册进去,于是有了window.aa再进入内循环 此时数组参数为["bb","cc"]
v2为第一个参数array[i] 见我的each分析
在内循环里 o =window.aa.bb = {}
然后o = window.aa.bb.cc = {}
返回了aa.bb.cc
于是一共注册了 aa aa.bb aa.bb.cc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值