首先,完整的代码在工作,所以我从记忆中背诵。
有一个 js 文件,其中包含这样定义的对象:
function SomeObject(someArg) {
this.someMember = someVar.split(".");
...
this.someFunc = function() {
return this.someMember;
}
...
}
还有另一个 js 文件使用了这个对象并且有一个看起来像这样的函数:
someOtherFunc(SomeObject):
var someOtherVar = SomeObject.someFunc();
var length = someOtherVar.length;
....
现在,当我在 someOtherFunc 的开头添加一个 alert(SomeObject.someFunc()) 时,我看到的只是一个空框。但是,当我提醒 SomeObject.someFunc().length 我得到 1 (因为数组有一个元素)。然而,我有一个“长度是未定义的......”,其中定义了 var 长度。此外,当我提醒 SomeObject.someFunc()[0] 时,我显示了元素的值(它是一个字符串)。
我知道它是 IE6(不要问),我无法提供太多背景信息,但我仍然希望这个问题有点为人所知,或者有一些解释或解决方法。