我看到很多这样的代码:
function Base() {}
function Sub() {}
Sub.prototype = new Base();
然而,如果你这样做:
s = new Sub();
print(s.constructor == Sub);
这是错误的。这让我感到困惑,因为s的构造函数确实是Sub。这样做是传统的/更好的吗?
function Base() {}
function Sub() {}
Sub.prototype = new Base();
Sub.prototype.constructor = Sub;
或者这真的无关紧要吗?
constructor
属性,以正确指向子类的构造函数。我在上面展示的代码中有一篇文章涉及到这个问题和其他问题。http://js-bits.blogspot.com/2010/08/javascript-inheritance-done-right.html - Ruan Mendes