我正在尝试从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;