我正在尝试从JavaScript中的对象生成类。例如:

var Test = {
    constructor: function() { document.writeln('test 1'); },
    method: function() { document.writeln('test 2'); }
};

var TestImpl = function() { };
TestImpl.prototype.constructor = Test.constructor;
TestImpl.prototype.method = Test.method;

var x = new TestImpl();
x.method();


但这是行不通的:它只会写“ test 2”(由于某种原因,构造器没有正确定义)。为什么?

最佳答案

我认为您做错了。

请记住,JavaScript实际上根本没有类。它有原型。因此,您真正要做的是创建一个原型对象,该对象的工作方式类似于您在另一个对象上构建的功能的集合。我无法想象有什么有用的目的-您能详细说明您要做什么吗?

虽然我认为您可以使用以下方法使其工作:

var TestImpl = function() {
    Test.constructor.apply(this);
};
TestImpl.prototype.method = Test.method;

10-04 21:20