OK,问了两个大神,一个不回答一个没搞懂,现在公开问一下,本来想问个朋友的朋友,但朋友说可能问题太弱智会比那个朋友的朋友无视....
Javascript里的对象引用暂时为止我的理解是指针,引用对像的引用就是复制一个指针,而对象是宇宙的,不是地球(函数作用域)的,所以我理解无论是在函数作用域内定义的指针还是全局window下定义的指针,都是指向同一个对象.
但我发现在函数作用域内循环语句中的对象指针行为和全局指针行为不同,很费解...
这个是YUI的一个家伙写的模拟命名空间的函数,我想问的不是函数本身的功能,而是MYAPP和parent这两个指针,在for循环里我把parent改写成MYAPP会得到完全不同的结果...-
var MYAPP = MYAPP || {};
MYAPP.namespace = function(ns_string) {
var parts = [],
parts = ns_string.split("."),
parent = MYAPP,
i;
if (parts[0] === "MYAPP") {
parts = parts.slice(1);
};
for (i = 0; i < parts.length; i += 1) {
parent[parts[i]] = {
x: i + 1
};
parent = parent[parts[i]]; //////////??????????????????????????
};
//return parent;
};
MYAPP.namespace("MYAPP.module1.module2.module3");
Javascript里的对象引用暂时为止我的理解是指针,引用对像的引用就是复制一个指针,而对象是宇宙的,不是地球(函数作用域)的,所以我理解无论是在函数作用域内定义的指针还是全局window下定义的指针,都是指向同一个对象.
但我发现在函数作用域内循环语句中的对象指针行为和全局指针行为不同,很费解...
这个是YUI的一个家伙写的模拟命名空间的函数,我想问的不是函数本身的功能,而是MYAPP和parent这两个指针,在for循环里我把parent改写成MYAPP会得到完全不同的结果...-
var MYAPP = MYAPP || {};
MYAPP.namespace = function(ns_string) {
var parts = [],
parts = ns_string.split("."),
parent = MYAPP,
i;
if (parts[0] === "MYAPP") {
parts = parts.slice(1);
};
for (i = 0; i < parts.length; i += 1) {
parent[parts[i]] = {
x: i + 1
};
parent = parent[parts[i]]; //////////??????????????????????????
};
//return parent;
};
MYAPP.namespace("MYAPP.module1.module2.module3");
