【发布时间】:2010-07-04 21:32:04
【问题描述】:
我不完全确定如何在 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 个参数时,它不起作用。 (构造函数中没有断点被命中;警报不会触发。另外,包含上述代码的方法停止执行。)
但是,这确实会导致警报触发:
FOO_LIST = new FooList();
我在这里做错了什么?
更新也许这是定义构造函数的更好方法:
FooList = function() { }
而不是
function FooList() { }
但是,即使使用前一种方法,它仍然不起作用。
更新 2: 看起来 Spinon 和 Russ Cam 的 cmets 是正确的。当我尝试评估它时,其中一个 args 默默地失败了。
【问题讨论】:
-
变量
arg1-7定义了吗? -
当您使用 7 个参数时,您传递的参数是什么?
-
@felix 是的,它们是,@tarantula:jquery 对象、字符串和回调。
-
它对我来说很好,就像你在你的问题中有它一样。我应该补充一点,我只是用 args 的整数值调用它。检索其中一个参数时可能会发生异常。
-
基于它既不适用于函数声明也不适用于函数表达式的事实,听起来您传递给函数构造函数的参数有问题。如果您可以在上下文中发布代码,我可能会提供进一步的帮助。
标签: javascript oop constructor