我不完全确定如何在JS中实现对象。
这是一个构造函数:
function FooList(arg1, arg2, arg3, arg4, arg5, arg6, arg7)
{
alert("constructing");
this._arg1 = arg1;
this._arg2 = arg2;
this.refresh();
}
我想在这里打电话:
FOO_LIST = new FooList(
arg1,
arg2,
arg3,
arg4,
arg5,
arg6,
arg7
);
当我拥有所有7个args时,它不起作用。 (命中构造函数中没有断点;警报不会触发。此外,包含上述代码的方法也会停止执行。)
但是,这确实会导致警报触发:
FOO_LIST = new FooList();
我在这里做错了什么?
UPDATE 也许这是定义构造函数的更好方法:
FooList = function() { }
而不是
function FooList() { }
然而,即使使用前一种方法,它仍然无效。
更新2:看起来Spinon和Russ Cam的评论是正确的。当我试图评估它时,其中一个args默默地失败了。
答案 0 :(得分:2)
在最后arg
之后你有一个尾随的逗号,这会导致JavaScript引擎出现问题。
此外,最好在var
前面使用FOO_LIST
,即使它是故意的全局变量,因为这是一个很好的习惯,可以进入所有变量声明并保存你来自未来全球变量覆盖的潜在问题。
对于具有许多类似参数的函数的情况,您可能希望使用arguments
对象并将其编入索引以获取参数1-7。