我正在尝试理解 JavaScript 中的继承。我正在使用原型(prototype)将子类链接到其父类。但是一旦我定义了关系,父类的构造函数就会开始运行。
<script type="text/javascript">
function Person ()
{
window.alert('We\'ve got a new person!');
}
function King ()
{
window.alert('We\'ve got a new king!');
}
King.prototype = new Person();
//King.prototype.constructor = King;
//var erik = new King();
</script>
在 JavaScript 中使用继承的正确方法是什么?
引发困惑的教程:https://developer.mozilla.org/en-US/docs/JavaScript/Introduction_to_Object-Oriented_JavaScript
最佳答案
那是因为 Javascript 是一种原型(prototype)语言,并不真正支持这种方式的继承。它的对象是松散类型,可以动态扩展额外的功能和属性。
因此,您实际上要做的是创建 Person 的实例
,然后可以使用额外的方法对其进行扩展。
教程说明了这一点:
In JavaScript you do this by assigning an instance of the parent class to the child class, and then specializing it.
如果您习惯于真正的(基于类的)面向对象,那么这会相当令人困惑。
关于JavaScript 继承和构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12222420/