var My = {}
My.namespace = function (name) {
    var parts = name.split(',')
    var current = My;
    for (i in parts) {
        if (!current[parts[i]]) {
            current[parts[i]] = {}
            console.log(current, My, i, current === My)
        }
        current = current[parts[i]]
    }
    
}
My.namespace('dom,style')
console.log(My)
代码如上,对最终的执行结果无法理解
为何 style:{}会挂载到 My 上面呢
每次 current[parts[i]] = {}  执行后
再执行 current = current[parts[i]]  
current 被设置成{} 他又是如何与 My 保持关联的呢
|  |      1chenstack      2018-04-24 23:08:46 +08:00 不太理解所说的 style:{}挂载到 My 上面,第一次循环相当于 My.dom = {}; current = My.dom; 第二次循环相当于 My.dom.style = {}; | 
|      2Exceptionluo OP @chenstack  为什么第二次循环相当于 My.dom.style = {};呢  就是这里不理解 | 
|  |      3rabbbit      2018-04-24 23:21:50 +08:00 第一次循环结束后 current 指向 My["dom"],值是 {} | 
|  |      4nanyang24      2018-04-24 23:25:49 +08:00 @Exceptionluo 第一次循环之后 `current = My.dom`。第二次循环:`current[parts[1]] = {}` 相当于 `My.dom.style = {}` | 
|      5Exceptionluo OP |